2013-06-24

[델파이] 파일의 이름 바꾸기, 복사, 이동

파일의 이름바꾸기 ,복사, 이동.

// ShlOjb, ShellAPI 를 uses 절에 반드시 포함시켜야 됩니다.

//파일의 복사
procedure TForm1.Button1Click(Sender: TObject);
var
  F : TShFileOpStruct;
begin
  F.Wnd := Handle;     // if 0, then no parent and can task switch away
  F.wFunc := FO_COPY;
  F.pFrom := 'C:\WINDOWS\*.TXT';
  F.pTo := 'C:\WINDOWS\TEMP';
  F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
  if ShFileOperation(F) <> 0 then ShowMessage('Copy Failed');
end;

//파일의 삭제...
procedure TForm1.Button2Click(Sender: TObject);
var
  F : TShFileOpStruct;
begin
  F.Wnd := Handle;
  F.wFunc := FO_DELETE;
  F.pFrom := 'C:\WINDOWS\TEMP\*.TXT';
  F.fFlags := FOF_ALLOWUNDO;
  if ShFileOperation(F) <> 0 then ShowMessage('Delete Failed');
end;

// ShellAPI 에는 다음과 같은 구조가 정의되어 있다.
TSHFileOpStruct = record
  Wnd: HWND;        //현재의 핸들
  wFunc: UINT;     // FO_COPY, FO_DELETE, FO_MOVE, FO_RENAME
  pFrom: PAnsiChar; // 원본 파일 이름.
  pTo: PAnsiChar;  // 대상 파일명
  fFlags: FILEOP_FLAGS; // 이동,복사, 이름바꾸기 플래그를 설정
  fAnyOperationsAborted: BOOL;
  hNameMappings: Pointer;
  lpszProgressTitle: PAnsiChar;
end;

댓글 없음: