Q&A

  • 파일 카피에 관한 질문입니다.
어느 특정한 폴더를 정해주면 그 폴더에 있는 모든 파일과 하위 폴더에 있는 모든 파일들을 다른 폴더로 카피하려면 어떻게 해야 하는지 아시는 분 부탁드립니다.

좋은 하루되세요.
2  COMMENTS
  • Profile
    데빌카마라 2003.08.31 03:15



    제가 한것은 아니구 저도 찾아보구해서 얻은 자료입니다

    이소스를 잘활용해보세요

    procedure TForm1.btnAllCopyClick(Sender: TObject);
    var
      iRet: Integer;
      Fo: TSHFileOpStruct;
    begin
      Fo.Wnd := 0;
      Fo.wFunc := FO_COPY;       //여기는 복사, 이동, 삭제 명령
      Fo.pFrom := PChar((edit1.Text) + #0);   // 원본 폴더나 파일이구요.. PCHAR 형식
      Fo.pTo := PChar((edit2.Text) + #0);     // 여긴 대상... PCHAR 형식입니다...
    //  Fo.pFrom := 'A:TEMP' + #0;         이렇게 쓸수도 있음
    //  Fo.pTo := 'B:' + #0;
      Fo.fFlags := 0;
      iRet := SHFileOperation(Fo);
    end;

    도움말도 찾아보면서 해보세요
    그럼즐코하세요....
  • Profile
    타락천사 2003.09.02 18:01
    아... 제가 쓴글이 어디 있는지 챃기 힘들군여. 한번 정리를 해야 하는데..


    // 두개의 상위가 같으면 디렉토리명 바꾸기이며, 틀리면 이동이 된다.
    function OKRenMovDir(AOldPath, ANewPath: string): boolean;
    begin
    Result := False;

    if MoveFile(PChar(AOldPath), PChar(ANewPath)) then
    begin
       // 원도우즈 탐색기에 알려서 디렉토리변경을 탐색기에 반영시킨다
       SHChangeNotify(SHCNE_RENAMEFOLDER, SHCNF_PATH, PChar(AOldPath), pChar(ANewPath));
       Result := True;
    end;
    end;


    // 디렉토리 삭제 함수
    function OKDelDir(APath: string): boolean;
    begin
    Result := False;

    if DeleteFile(PChar(APath)) then
    begin
       // 원도우즈 탐색기에 알려서 디렉토리변경을 탐색기에 반영시킨다
       SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, PChar(APath), pChar(APath));
       Result := True;
    end;
    end;