程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Delphi編程創建和刪除文件夾

Delphi編程創建和刪除文件夾

編輯:更多關於編程

       向窗體上添加兩個TButton組件,一個用於創建新的文件夾,另一個用於刪除新創建的文件夾,設計完成的窗體如圖1所示。

    Delphi編程創建和刪除文件夾 三聯

      圖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子目錄刪除。

      本實例介紹了如何創建文件夾,並且為刪除文件夾提供了兩種途徑——一種是刪除文件夾到回收站中,另外一種就是直接刪除。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved