首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 檔案目錄操作實戰:建立資料夾與安全刪除至資源回收筒

     編輯:Delphi

應用場景

程式執行期動態建立暫存目錄,使用結束後移至資源回收筒(可還原)或永久刪除。

介面設計

  • 兩個 TButton:建立、刪除

核心程式碼

建立目錄

uses ShellApi;

procedure TForm1.btnCreateClick(Sender: TObject);
begin
  CreateDirectory(PChar(ExtractFilePath(ParamStr(0)) + 'Test'), nil);
end;

於程式所在目錄下建立 Test 子目錄。

移至資源回收筒刪除

procedure TForm1.btnDeleteClick(Sender: TObject);
var
  Op: TSHFileOpStruct;
  Path: string;
begin
  Path := ExtractFilePath(ParamStr(0)) + 'Test';
  FillChar(Op, SizeOf(Op), 0);
  with Op do begin
    Wnd := 0;
    wFunc := FO_DELETE;
    pFrom := PChar(Path + #0); // 雙重空字元結尾
    pTo := nil;
    fFlags := FOF_ALLOWUNDO or FOF_NOERRORUI; // 允許復原、不顯示錯誤 UI
    hNameMappings := nil;
    lpszProgressTitle := '正在刪除資料夾';
    fAnyOperationsAborted := False;
  end;
  if SHFileOperation(Op) = 0 then
    ShowMessage('刪除成功(已移至資源回收筒)')
  else
    ShowMessage('刪除失敗');
end;

永久刪除(替代方案)

RemoveDirectory(PChar(ExtractFilePath(ParamStr(0)) + 'Test'));

直接刪除,不經資源回收筒,不可還原。

完整單元程式碼

unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellApi;
type
  TForm1 = class(TForm)
    btnCreate: TButton;
    btnDelete: TButton;
    procedure btnCreateClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
  end;
var Form1: TForm1;
implementation {$R *.dfm}
procedure TForm1.btnCreateClick(Sender: TObject);
begin CreateDirectory(PChar(ExtractFilePath(ParamStr(0)) + 'Test'), nil); end;
procedure TForm1.btnDeleteClick(Sender: TObject);
var Op: TSHFileOpStruct; Path: string;
begin
  Path := ExtractFilePath(ParamStr(0)) + 'Test';
  FillChar(Op, SizeOf(Op), 0);
  with Op do begin
    Wnd := 0; wFunc := FO_DELETE; pFrom := PChar(Path + #0); pTo := nil;
    fFlags := FOF_ALLOWUNDO or FOF_NOERRORUI;
    lpszProgressTitle := '正在刪除資料夾'; fAnyOperationsAborted := False;
  end;
  SHFileOperation(Op);
end;
end.

執行效果

點擊「建立」 → 目錄出現;點擊「刪除」 → 目錄進入資源回收筒,可在資源回收筒中還原。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved