線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2507
推到 Plurk!
推到 Facebook!

如何直接刪除資料夾(不會丟到資源回收筒的那種)

答題得分者是:hagar
moonunderdoor
一般會員


發表:8
回覆:5
積分:2
註冊:2002-10-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-11 16:49:41 IP:211.75.xxx.xxx 未訂閱
我有在之前的文章找到刪除整個資料夾的副程式, 那個副程式很好用 但是我的資源回收筒都是同一個資料夾的名稱, 有沒有那種把資料夾直接從硬碟刪除,不會丟到資源回收筒的方法或指令呢?
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-11 18:28:10 IP:202.39.xxx.xxx 未訂閱
參考: 
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-24 14:14:12 IP:61.30.xxx.xxx 未訂閱
好用! 多謝hagar.
系統時間:2024-11-22 23:30:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!