디렉토리 복사 루틴 (하부디렉토리까지 몽땅)

31399 
Created at 2006-09-29 06:38:09 
212   0   0   0  
 
Procedure TForm1.DirectoryCopy(Sourcedir :string; Destdir: string);
var
  Pstr : array[0..256] of char; //널 종료 문자열로 바꾸기 위한 저정하기 위한 변수
  Pstr2 : array[0..256] of char;
  str : string[255]; //경로를 조립하기 위한 임시 문자열
  str2 : string[255];
  SearchRec : TsearchRec; //소스디렉토리를 검색하고자 할때 쓰이는 레코드(파스칼 구조체입니다.);
  Result : integer; //찾았는지 못 찾았는지 여부
BEGIN
  str := Sourcedir + '*.*';
  FindFirst(str, faanyfile, SearchRec); //소스폴더를 검색한다.
  Result := 0; //검색결과 여부의 초기화

  While Result = 0 do //다음 화일을 찾아 루프를 반복
  begin

    if (SearchRec.name = '.') or (SearchRec.name = '..') then
    begin //폴더가 자기자신이거나 상위폴더일 경우
      Result := findnext(SearchRec); //검색 결과 화일을 찾으면 1이다.)
      continue;
    end;

    if SearchRec.attr = fadirectory then //발견한 대상이 디렉토리이면
    begin
      str := Sourcedir + '' + SearchRec.name; //소스디렉토리 와 발견한 디렉토리를 더한다.
      str2 := Destdir + '' + SearchRec.name; //타켓디렉토리 와 발견한 디렉토리를 더해준다.
      Mkdir(str2); //타켓디렉토리를 생성한다.
      DirectoryCopy(str, str2); //디렉토리 이므로 여기서 자기자신을 재귀호출한다.
      Result := findnext(SearchRec); //결과를 돌려준다.
      continue;
    end;

    //아래는 찾은것이 화일일 경우 복사를 하는 부분이다.
    //완전 경로명으로 조립해 주어야 한다.
    str := Sourcedir + '' + SearchRec.name;
    str2 := Destdir + '' + SearchRec.name;
    StrPcopy(pstr, str);
    StrPcopy(pstr2, str2);
    CopyFile(pstr, pstr2, false);

    //이것은 API함수이다. Parameter는
    //CopyFile(소스화일명, 데스트화일명, 플래그) 마지막 인자인 플래그는 false 일경우 화일이 존재할때 덮어쓴다.)
    Result := findnext(SearchRec); //검색여부
  end; //While 문의 끝

END; //함수의 끝


Tags: directory 윈도우즈 Share on Facebook Share on X

◀ PREVIOUS
File Attribute 바꾸는 방법
▶ NEXT
Starting an application as an icon in the system tray
  댓글 0
로그인을 하시면 댓글을 등록 할 수 있습니다.
SIMILAR POSTS

디렉토리와 그 안에 있는 모든 파일 지우기 (created at 2006-09-29)

Create a standard windows shortcut file (created at 2006-09-29)

Starting an application as an icon in the system tray (created at 2006-09-29)

Extracting a Program's Version Information (created at 2006-09-29)

File Attribute 바꾸는 방법 (created at 2006-09-29)

ShellExecute 실행 끝날때 까지 기다리기 (created at 2006-09-29)

DirectShow에서 비디오 출력 크기 조정해주기 (created at 2006-09-29)

공유폴더 찾아주기 (created at 2006-09-29)

로컬 IP 알아내기 (created at 2006-09-29)

스크린세이버 동작 못하게 막아주기 (created at 2006-09-29)

PC 셧다운 (shutdown) (created at 2006-09-29)

how to record keyboard & mouse event (created at 2006-09-29)

웹브라우져에 붙이기 위한 ActiveX 프로그래밍 방법 (created at 2006-09-29)

투명 윈도우 구현 방법 (created at 2006-09-29)

ActiveX를 Safe한 Component로 등록하는 방법 (created at 2006-09-29)

ActiveX의 등록 - Safe Code 넣어주기 (updated at 2023-12-17)

윈도우 찾아서 Top Most로 올려주기 (updated at 2023-12-17)

Application defined window call procedure (created at 2006-09-29)

Application Event써서 Keyboard 받아내기 (created at 2006-09-29)

Web Browser Control에서 Enter키 먹게 하기 (created at 2006-09-29)

String Find 알고리즘 (created at 2006-09-29)

HTTP Downloading Reference Source Code (created at 2006-09-29)

File Search Sample Code (created at 2006-09-29)

모니터 끄는 API (created at 2006-09-29)

wave 파일 mixing 하기. (웨이브 믹싱) (created at 2006-09-29)

ATL/ActiveX 에서 자바스크립트로 데이터(문자열) 보내기 (created at 2006-09-29)

System Log-Off, Suspend, Reboot, Shutdown 시키기 (created at 2006-09-29)

GDI+ 에서 이미지 반투명 처리하기.. (created at 2006-09-29)

자기자신 IP알아내기(로칼컴퓨터) (created at 2006-09-29)

프로세스명으로 프로세스 죽이는 함수 (created at 2006-09-29)

OTHER POSTS IN THE SAME CATEGORY

Application defined window call procedure (created at 2006-09-29)

윈도우 찾아서 Top Most로 올려주기 (updated at 2023-12-17)

ActiveX의 등록 - Safe Code 넣어주기 (updated at 2023-12-17)

ActiveX를 Safe한 Component로 등록하는 방법 (created at 2006-09-29)

투명 윈도우 구현 방법 (created at 2006-09-29)

웹브라우져에 붙이기 위한 ActiveX 프로그래밍 방법 (created at 2006-09-29)

how to record keyboard & mouse event (created at 2006-09-29)

PC 셧다운 (shutdown) (created at 2006-09-29)

스크린세이버 동작 못하게 막아주기 (created at 2006-09-29)

로컬 IP 알아내기 (created at 2006-09-29)

공유폴더 찾아주기 (created at 2006-09-29)

DirectShow에서 비디오 출력 크기 조정해주기 (created at 2006-09-29)

ShellExecute 실행 끝날때 까지 기다리기 (created at 2006-09-29)

Extracting a Program's Version Information (created at 2006-09-29)

Starting an application as an icon in the system tray (created at 2006-09-29)

File Attribute 바꾸는 방법 (created at 2006-09-29)

wave 파일 mixing 하기. (웨이브 믹싱) (created at 2006-09-29)

ATL/ActiveX 에서 자바스크립트로 데이터(문자열) 보내기 (created at 2006-09-29)

System Log-Off, Suspend, Reboot, Shutdown 시키기 (created at 2006-09-29)

GDI+ 에서 이미지 반투명 처리하기.. (created at 2006-09-29)

자기자신 IP알아내기(로칼컴퓨터) (created at 2006-09-29)

프로세스명으로 프로세스 죽이는 함수 (created at 2006-09-29)

빈폴더 찾아내기 (created at 2006-09-29)

IE 패치에 따른 object, embed, applet 대처 방안 (created at 2006-09-28)

Virtusertable (created at 2006-09-28)

웹서버 및 웹메일 설정 방법 (created at 2006-09-28)

음력-양력 변환기 (created at 2006-09-28)

어떤 파라메터가 넘어왔는지 알아내는 함수 (created at 2006-09-28)

PHP에서 메일 함수가 동작하지 않을때 (created at 2006-09-28)

웹페이지 긁어서 타이틀 뿌려주는 소스 (created at 2006-09-28)

UPDATES

입사 후 1년도 되지 않은 회사에서 구조조정에 의한 퇴직 불응에 따른 해고 처리시 대응 가능한 방법 (updated at 2024-04-20)

한고은님의 옛날 사진 (updated at 2024-04-20)

소녀대 - Bye Bye Girl (updated at 2024-04-13)

대한민국 날씨 근황 (created at 2024-04-13)

성일종 인재육성 강조하며 이토 히로부미 언급 - 인재 키운 선례? (updated at 2024-04-13)

일제강점기가 더 살기 좋았을지도 모른다는 조수연 국민의힘 후보 - 친일파? (updated at 2024-04-13)

Marshall Ha님의 샤오미 SU7 시승기 - 테슬라의 일론 머스크님이 긴장할만한 느낌 (updated at 2024-04-09)

윙크하는 귀염둥이 반려견들 (created at 2024-04-08)

달콤 살벌한 고백 (created at 2024-04-08)

북한 최정예 공수부대 훈련 모습 (updated at 2024-04-02)

맛있었던 친구 어머니의 주먹밥이 먹고 싶어요 (created at 2024-04-02)

자리 마음에 안든다고 6급 공무원 패는 농협 조합장 (created at 2024-03-26)

85세 딸 짜장면 사주는 102세 어머니 (created at 2024-03-26)

1990년대 감각파 도둑 (created at 2024-03-26)

치매에 걸린 69살의 브루스 윌리스가 전부인 데미무어를 보고 한 말 (updated at 2024-03-22)

경제는 대통령이 살리는 것이 아닙니다 라던 윤석열대통령 - 상황 안좋아지자 여러 전략을 펼쳤지만, 부작용 속출했던 2024년의 봄 (updated at 2024-03-13)

극빈의 생활을 하고 배운것이 없는 사람은 자유가 뭔지도 모를 뿐 아니라 왜 개인에게 필요한지에 대한 필요성을 못느낀다는 윤석열 대통령 (updated at 2024-03-08)

조선일보를 안본다는 사람들이 말하는 그 이유 - 천황폐하, 전두환 각하, 김일성 장군 만세? (created at 2024-03-07)

광폭타이어를 장착하면 성능이 좋아질거라는 착각 (updated at 2024-03-03)

면허시험장에서 면허갱신하면 하루만에 끝나나? (updated at 2024-03-03)

신한은행/신한투자증권 금융거래 종합보고서 다운로드 방법 (updated at 2024-02-26)

100년 된 일본 장난감 회사가 내놓은 변신 기술에 난리난 과학계 (created at 2024-02-26)

알리에서 발견한 한글 지원하는 가성비 쩌는 무선 기계식키보드 (updated at 2024-02-25)

쌍팔년도가 1988년인줄 알았던 1인 (updated at 2024-02-23)

이쁜 색으로 변신한 테슬라 사이버트럭 (created at 2024-02-23)

2024년 카타르 아시안컵 4강전 전날 한국 대표팀 내부에 있었던 이강인의 폭주 (updated at 2024-02-21)

강릉 맛집 지도 (updated at 2024-02-20)

간이 안좋을 때 나타나는 증상 20가지 (updated at 2024-02-20)

배설물을 이용하여 일본에 저항했던 독립운동가 조명하 (updated at 2024-02-20)

요건 몰랐지롱? 이순신을 사랑한 외국인 (created at 2024-02-20)