如何直接刪除資料夾(不會丟到資源回收筒的那種) |
答題得分者是:hagar
|
moonunderdoor
一般會員 發表:8 回覆:5 積分:2 註冊:2002-10-27 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
參考:
Function Tform1.File_DirOperations_Datail( Action : String; {COPY, DELETE, MOVE, RENAME} RenameOnCollision : Boolean; {Renames if directory exists} NoConfirmation : Boolean; {Responds "Yes to All" to any dialogs} Silent : Boolean; {No progress dialog is shown} ShowProgress : Boolean; {displays progress dialog but no file names} FromDir : String; {From directory} ToDir : String {To directory} ): Boolean; var SHFileOpStruct : TSHFileOpStruct; FromBuf, ToBuf: Array [0..255] of Char; begin Try If Not DirectoryExists(FromDir) Then Begin Result := False; Exit; End; Fillchar(SHFileOpStruct, Sizeof(SHFileOpStruct), 0 ); FillChar(FromBuf, Sizeof(FromBuf), 0 ); FillChar(ToBuf, Sizeof(ToBuf), 0 ); StrPCopy(FromBuf, FromDir); StrPCopy(ToBuf, ToDir); With SHFileOpStruct Do Begin Wnd := 0; If UpperCase(Action) = 'COPY' Then wFunc := FO_COPY; If UpperCase(Action) = 'DELETE' Then wFunc := FO_DELETE; If UpperCase(Action) = 'MOVE' Then wFunc := FO_MOVE; If UpperCase(Action) = 'RENAME' Then wFunc := FO_RENAME; pFrom := @FromBuf; pTo := @ToBuf; //fFlags := FOF_ALLOWUNDO; // 有加這一行, 就會將刪的目錄丟進資源回收桶 If RenameOnCollision Then fFlags := fFlags or FOF_RENAMEONCOLLISION; If NoConfirmation Then fFlags := fFlags or FOF_NOCONFIRMATION; If Silent Then fFlags := fFlags or FOF_SILENT; If ShowProgress Then fFlags := fFlags or FOF_SIMPLEPROGRESS; End; Result := (SHFileOperation(SHFileOpStruct) = 0); Except Result := False; End; end; procedure TForm1.Button1Click(Sender: TObject); begin File_DirOperations_Datail('DELETE', False, True, True, True, 'C:\Tmp', ''); end;-- Everything I say is a lie. 發表人 - hagar 於 2002/12/11 18:30:14 |
jeffreyhsieh
一般會員 發表:1 回覆:4 積分:1 註冊:2002-11-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |