刪除目錄: function DelDirectory(const Source:string): boolean; var fo: TSHFILEOPSTRUCT; begin FillChar(fo, SizeOf(fo), 0); with fo do begin Wnd := 0; wFunc := FO_DELETE; pFrom := PChar(source+#0); pTo := #0#0; fFlags := FOF_NOCONFIRMATION+FOF_SILENT; end; Result := (SHFileOperation(fo) = 0); end; 複製目錄: function CopyDirectory(const Source, Dest: string): boolean; var fo: TSHFILEOPSTRUCT; begin FillChar(fo, SizeOf(fo), 0); with fo do begin Wnd := 0; wFunc := FO_COPY; pFrom := PChar(source+ #0 ); pTo := PChar(Dest+ #0 ); fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR ; end; Result := (SHFileOperation(fo) = 0); end; 從新命名: //RenDirectory('d:\wt2','d:\bcde'); function RenDirectory(const OldName,NewName:string): boolean; var fo: TSHFILEOPSTRUCT; begin FillChar(fo, SizeOf(fo), 0); with fo do begin Wnd := 0; wFunc := FO_RENAME; pFrom := PChar(OldName+ #0 ); pTo := pchar(NewName+ #0 ); fFlags := FOF_NOCONFIRMATION+FOF_SILENT; end; Result := (SHFileOperation(fo) = 0); end; //Copy 多個文件的處理: function CopyFiles(const Source,Dest: string): boolean; var fo: TSHFILEOPSTRUCT; begin FillChar(fo, SizeOf(fo), 0); with fo do begin Wnd := 0; wFunc := FO_COPY; pFrom := @source[1]; pTo :=pchar(dest); fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR ; end; Result := (SHFileOperation(fo) = 0); end; procedure TForm1.Button1Click(Sender: TObject); var str:string; i:integer; begin if opendialog1.Execute then begin for i:=0 to OpenDialog1.Files.Count-1 do str:=str+OpenDialog1.Files.strings[i]+ #0 ; showmessage(str); str:=str+ #0 ; CopyFiles(str, 'd:\temp' ); end; end;