Delphi編程建立和刪除檔案夾

來源:互聯網
上載者:User

   向表單上添加兩個TButton組件,一個用於建立新的檔案夾,另一個用於刪除新建立的檔案夾,設計完成的表單1所示。

  圖1 主介面

  首先在程式的uses段中添加對ShellApi的引用,另外還要在“建立”按鈕的響應過程中添加下列代碼:

  procedure TForm1.btnCreateClick(Sender: TObject);

  begin

  CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil);

  end;

  程式運行初期就會執行CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil)語句,在程式執行個體所在的目錄中建立一個子目錄test。

  在程式運行過程中,單擊“刪除”按鈕就可以將新建立的test子目錄刪除,響應代碼如下:

  procedure TForm1.btnDeleteClick(Sender: TObject);

  var

  T:TSHFileOpStruct;

  P:String;

  begin

  P:=ExtractFilePath(ParamStr(0))+’Test’;

  with T do

  begin

  Wnd:=0;

  wFunc:=FO_DELETE;

  pFrom:=PChar(P);

  pTo:=nil;

  fFlags:=FOF_ALLOWUNDO+FOF_NOERRORUI;

  hNameMappings:=nil;

  lpszProgressTitle:=’正在刪除檔案夾’;

  fAnyOperationsAborted:=False;

  end;

  SHFileOperation(T);

  end;

  程式通過填充TSHFileOpStruct 類型的對象T的屬性來設定本次刪除操作可以Undo,當然最終的刪除操作是通過SHFileOperation(T)來完成的。如果SHFileOperation函數傳回值為0,就表示刪除成功,否則表示刪除失敗。

  如果使用者在程式中想要直接刪除test子目錄,可以直接通過調用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);

  private

  { Private declarations }

  public

  { Public declarations }

  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

  T:TSHFileOpStruct;

  P:String;

  begin

  P:=ExtractFilePath(ParamStr(0))+’Test’;

  with T do

  begin

  Wnd:=0;

  wFunc:=FO_DELETE;

  pFrom:=PChar(P);

  pTo:=nil;

  fFlags:=FOF_ALLOWUNDO+FOF_NOERRORUI;

  hNameMappings:=nil;

  lpszProgressTitle:=’正在刪除檔案夾’;

  fAnyOperationsAborted:=False;

  end;

  SHFileOperation(T);

  //RemoveDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’));

  end;

  end.

  儲存檔案,然後按F9鍵運行程式,程式啟動並執行初始畫面2所示。

  圖2 程式啟動並執行初始畫面

  單擊“建立”按鈕就會在程式執行個體所在的目錄中建立一個子目錄test,單擊“刪除”按鈕就可以將新建立的test子目錄刪除。

  本執行個體介紹了如何建立檔案夾,並且為刪除檔案夾提供了兩種途徑——一種是刪除檔案夾到資源回收筒中,另外一種就是直接刪除。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.