::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-06 21:12:07, Hit : 4576, Vote : 1055
 디렉토리 복사루틴 (하부디렉토리 까지 몽땅)

// 작성자: 구창민 (jekcm@thrunet.com)

디렉토리 단위로 복사하는 재귀호출 함수입니다.
소스디렉토리와 타켓디렉토리를 인수로 받아서 소스디렉토리내의 모든
하부 디렉토리와 화일을 타켓디렉토리로 복사합니다.

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; //함수의 끝





651   [시스템] OS가 NT인지 95인지 판단하려면...  김영대 2003/03/06 4169 1191
650   [시스템] 2기가 이상의 하드의 남은 용량 알아내기...  김영대 2003/03/06 7444 2076
649   [시스템] CPU의 사용률 구하기  김영대 2003/03/06 3258 831
648   [윈도우즈 API] 비트맵을 프린트 하려면...  김영대 2003/03/06 3226 984
647   [시스템] IME창을 없애려면...  김영대 2003/03/06 5486 1695
646   [윈도우즈 API] 바탕화면의 아이콘 제목을 투명하게 하자...  김영대 2003/03/06 5194 1586
645   [윈도우즈 API] 레지스트리가 변경된 사실을 알리려면...  김영대 2003/03/06 4324 1157
644   [데이터베이스] TMemoField와 TMemo 사이의 자료교환  김영대 2003/03/06 5284 1522
643   [일반/컴포넌트] String과 Case문의 사용  김영대 2003/03/06 3701 1029
642   [일반/컴포넌트] X 의 Y 승 ?  김영대 2003/03/06 5536 1686
641   [윈도우즈 API] 폼의 최대/최소화 막기  김영대 2003/03/06 4971 1330
640   [시스템] 프린터에 escape 코드를 전달하는 방법  김영대 2003/03/06 3791 1107
639   [시스템] 윈도우즈의 "국가별 설정" 읽어오기  김영대 2003/03/06 5020 1507
638   [윈도우즈 API] 파일의 Universal Naming Convention (UNC)  김영대 2003/03/06 5224 1614
637   [시스템] 현재 CD의 Track과 시간 구하기  김영대 2003/03/06 5217 1401
636   [일반/컴포넌트] 주어진 파일에서 문자열 찾기  김영대 2003/03/06 4347 1082
635   [일반/컴포넌트] 문자열 역으로 만들기(reverse a string)  김영대 2003/03/06 4797 1438
634   [일반/컴포넌트] 주민등록번호를 검사하는 법  김영대 2003/03/06 3859 971
633   [일반/컴포넌트] 사업자 등록번호를 검사하는 법  김영대 2003/03/06 6743 1747
632   [일반/컴포넌트] 동적으로 class의 instance 만들기  김영대 2003/03/06 3769 1049
631   [윈도우즈 API] 다른 윈도우 스크롤 시키기  김영대 2003/03/06 6136 1687
  [일반/컴포넌트] 디렉토리 복사루틴 (하부디렉토리 까지 몽땅)  김영대 2003/03/06 4576 1055
629   [일반/컴포넌트] 디렉토리 삭제루틴(하부디렉토리 몽땅)  김영대 2003/03/06 3519 956
628   [일반/컴포넌트] 임의의 디렉토리 만들어내기(입력한 상위 디렉토리부터 몽땅)  김영대 2003/03/06 2659 685
627   [일반/컴포넌트] Enter 키로 Tab 키처럼 콘트롤 이동하기  김영대 2003/03/06 3149 870
626   [일반/컴포넌트] 동적으로 메뉴(memu)에 Item 추가하기  김영대 2003/03/06 4832 1258
625   [일반/컴포넌트] Memo 의 UNDO 가능여부 검사와 UNDO 시키기  김영대 2003/03/06 2798 739
624   [알고리즘] Shell Sort algorithm  김영대 2003/03/06 5668 1733
623   [알고리즘] Bubble Sort algorithm  김영대 2003/03/06 2499 660
622   [알고리즘] Quick Sort algorithm  김영대 2003/03/06 3103 894
621   [일반/컴포넌트] Algorithm to sort a TStringGrid #1  김영대 2003/03/06 3097 811
620   [일반/컴포넌트] TListView Subcolumn Sorting  김영대 2003/03/06 4468 1147
619   [일반/컴포넌트] 폼 인쇄하기  김영대 2003/03/06 2880 768
618   [시스템] 마우스의 좌/우 기능설정과 버튼갯수 알기  김영대 2003/03/06 7273 1970
617   [네트웍/인터넷] 네트워크의 컴퓨터 이름,작업 그룹,컴퓨터 설명  김영대 2003/03/06 5060 1134
616   [일반/컴포넌트] 문자열에 들어있는 한글과 영문의 문자수  김영대 2003/03/06 3786 963
615   [시스템] 윈도우즈 국가별 설정의 언어 알아내기  김영대 2003/03/06 4485 1250
614   [네트웍/인터넷] 네트워크 환경의 컴퓨터 리스트 구하기  김영대 2003/03/06 5930 1521
613   [일반/컴포넌트] ListBox에 배경그림 넣기  김영대 2003/03/06 4234 1054
612   [데이터베이스] JPEG(JPG), BMP 를 DB에 저장하고 불러오기  김영대 2003/03/06 5520 1243

[1][2][3][4][5][6][7][8] 9 [10]..[25] [다음 10개]
 

Copyright 1999-2020 Zeroboard / skin by zero