文件夹删除/清空

来源:互联网 发布:大数据人工智能培训 编辑:程序博客网 时间:2024/05/12 10:24

代码:

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ShellAPI, cxShellBrowserDialog, StdCtrls;type  TForm1 = class(TForm)    btn1: TButton;    cxshlbrwsrdlg1: TcxShellBrowserDialog;//控件    procedure btn1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure ClearDir(AHandle: THandle; const ADirName: String);   //uses ShellAPIvar  SHFileOpStruct: TSHFileOpStruct;  DirName: PChar;  BufferSize: Cardinal;begin  BufferSize := Length(ADirName) + 1 + 1;  GetMem(DirName, BufferSize);  try    FillChar(DirName^, BufferSize, 0);    StrCopy(DirName, PChar(ADirName));    with SHFileOpStruct do    begin      Wnd := AHandle;      wFunc := FO_DELETE;      pFrom := DirName;      pTo := nil;      fFlags := FOF_SILENT or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;      fAnyOperationsAborted := False;      hNameMappings := nil;      lpszProgressTitle := nil;    end;    SHFileOperation(SHFileOpStruct);    MkDir(ADirName);//注释掉该行就是删除文件夹  finally    FreeMem(DirName, BufferSize);  end;end;procedure TForm1.btn1Click(Sender: TObject);var  forderpath: string;begin  cxshlbrwsrdlg1.path := 'c:\';  if not cxshlbrwsrdlg1.Execute then  begin    exit;  end;  forderpath := cxshlbrwsrdlg1.path;  ClearDir(Self.Handle, forderpath);end;end.

 

function DeleteFolder(SourceDir: string): boolean;var  lpFileOp: TSHFileOpStruct;begin  if DirectoryExists(SourceDir) then  begin    zeromemory(@lpFileOp, SizeOf(TSHFileOpStruct));    with lpFileOp do    begin      Wnd := Application.Handle;      wfunc := FO_DELETE;      pFrom := pchar(SourceDir + #0#0);      pTo := nil;      // fFlags := FOF_ALLOWUNDO or FOF_CONFIRMMOUSE;      fFlags := FOF_SILENT or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;      hNameMappings := nil; // 'test';//SourceDir;      lpszProgressTitle := nil;      fAnyOperationsAborted := false;    end;    Result := SHFileOperation(lpFileOp) = 0;  end;end;




 

原创粉丝点击