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

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


Category

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

// 작성자: 구창민 (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 4144 1189
650   [시스템] 2기가 이상의 하드의 남은 용량 알아내기...  김영대 2003/03/06 7407 2072
649   [시스템] CPU의 사용률 구하기  김영대 2003/03/06 3227 827
648   [윈도우즈 API] 비트맵을 프린트 하려면...  김영대 2003/03/06 3199 983
647   [시스템] IME창을 없애려면...  김영대 2003/03/06 5465 1693
646   [윈도우즈 API] 바탕화면의 아이콘 제목을 투명하게 하자...  김영대 2003/03/06 5170 1581
645   [윈도우즈 API] 레지스트리가 변경된 사실을 알리려면...  김영대 2003/03/06 4297 1155
644   [데이터베이스] TMemoField와 TMemo 사이의 자료교환  김영대 2003/03/06 5260 1519
643   [일반/컴포넌트] String과 Case문의 사용  김영대 2003/03/06 3678 1028
642   [일반/컴포넌트] X 의 Y 승 ?  김영대 2003/03/06 5512 1680
641   [윈도우즈 API] 폼의 최대/최소화 막기  김영대 2003/03/06 4943 1327
640   [시스템] 프린터에 escape 코드를 전달하는 방법  김영대 2003/03/06 3763 1104
639   [시스템] 윈도우즈의 "국가별 설정" 읽어오기  김영대 2003/03/06 4986 1502
638   [윈도우즈 API] 파일의 Universal Naming Convention (UNC)  김영대 2003/03/06 5193 1609
637   [시스템] 현재 CD의 Track과 시간 구하기  김영대 2003/03/06 5186 1397
636   [일반/컴포넌트] 주어진 파일에서 문자열 찾기  김영대 2003/03/06 4325 1080
635   [일반/컴포넌트] 문자열 역으로 만들기(reverse a string)  김영대 2003/03/06 4779 1436
634   [일반/컴포넌트] 주민등록번호를 검사하는 법  김영대 2003/03/06 3821 968
633   [일반/컴포넌트] 사업자 등록번호를 검사하는 법  김영대 2003/03/06 6713 1744
632   [일반/컴포넌트] 동적으로 class의 instance 만들기  김영대 2003/03/06 3744 1048
631   [윈도우즈 API] 다른 윈도우 스크롤 시키기  김영대 2003/03/06 6118 1685
  [일반/컴포넌트] 디렉토리 복사루틴 (하부디렉토리 까지 몽땅)  김영대 2003/03/06 4537 1052
629   [일반/컴포넌트] 디렉토리 삭제루틴(하부디렉토리 몽땅)  김영대 2003/03/06 3481 955
628   [일반/컴포넌트] 임의의 디렉토리 만들어내기(입력한 상위 디렉토리부터 몽땅)  김영대 2003/03/06 2632 681
627   [일반/컴포넌트] Enter 키로 Tab 키처럼 콘트롤 이동하기  김영대 2003/03/06 3123 865
626   [일반/컴포넌트] 동적으로 메뉴(memu)에 Item 추가하기  김영대 2003/03/06 4701 1256
625   [일반/컴포넌트] Memo 의 UNDO 가능여부 검사와 UNDO 시키기  김영대 2003/03/06 2766 733
624   [알고리즘] Shell Sort algorithm  김영대 2003/03/06 5635 1730
623   [알고리즘] Bubble Sort algorithm  김영대 2003/03/06 2461 655
622   [알고리즘] Quick Sort algorithm  김영대 2003/03/06 3075 890
621   [일반/컴포넌트] Algorithm to sort a TStringGrid #1  김영대 2003/03/06 3060 808
620   [일반/컴포넌트] TListView Subcolumn Sorting  김영대 2003/03/06 4441 1145
619   [일반/컴포넌트] 폼 인쇄하기  김영대 2003/03/06 2853 764
618   [시스템] 마우스의 좌/우 기능설정과 버튼갯수 알기  김영대 2003/03/06 7234 1965
617   [네트웍/인터넷] 네트워크의 컴퓨터 이름,작업 그룹,컴퓨터 설명  김영대 2003/03/06 5036 1132
616   [일반/컴포넌트] 문자열에 들어있는 한글과 영문의 문자수  김영대 2003/03/06 3752 961
615   [시스템] 윈도우즈 국가별 설정의 언어 알아내기  김영대 2003/03/06 4455 1245
614   [네트웍/인터넷] 네트워크 환경의 컴퓨터 리스트 구하기  김영대 2003/03/06 5909 1517
613   [일반/컴포넌트] ListBox에 배경그림 넣기  김영대 2003/03/06 4144 1051
612   [데이터베이스] JPEG(JPG), BMP 를 DB에 저장하고 불러오기  김영대 2003/03/06 5352 1230

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

Copyright 1999-2019 Zeroboard / skin by zero