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

Delphi編程創建和刪除文件夾

編輯:Delphi

本實例介紹如何在程序中創建文件夾,並且可以將新創建的文件夾刪除到回收站中。

向窗體上添加兩個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子目錄刪除。

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

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