首先在程序的uses段中添加對(duì)ShellApi的引用,另外還要在“創(chuàng)建”按鈕的響應(yīng)過程中添加下列代碼:
procedure TForm1.btnCreateClick(Sender: TObject);
begin
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil);
end;
程序運(yùn)行初期就會(huì)執(zhí)行CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil)語句,在程序?qū)嵗诘哪夸浿袆?chuàng)建一個(gè)子目錄test。
在程序運(yùn)行過程中,單擊“刪除”按鈕就可以將新創(chuàng)建的test子目錄刪除,響應(yīng)代碼如下:
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 類型的對(duì)象T的屬性來設(shè)置本次刪除操作可以Undo,當(dāng)然最終的刪除操作是通過SHFileOperation(T)來完成的。如果SHFileOperation函數(shù)返回值為0,就表示刪除成功,否則表示刪除失敗。
procedure TForm1.btnCreateClick(Sender: TObject);
begin
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil);
end;
程序運(yùn)行初期就會(huì)執(zhí)行CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+’Test’),nil)語句,在程序?qū)嵗诘哪夸浿袆?chuàng)建一個(gè)子目錄test。
在程序運(yùn)行過程中,單擊“刪除”按鈕就可以將新創(chuàng)建的test子目錄刪除,響應(yīng)代碼如下:
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 類型的對(duì)象T的屬性來設(shè)置本次刪除操作可以Undo,當(dāng)然最終的刪除操作是通過SHFileOperation(T)來完成的。如果SHFileOperation函數(shù)返回值為0,就表示刪除成功,否則表示刪除失敗。