扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共19页)
本实例介绍如何在程序中创建文件夹,并且可以将新创建的文件夹删除到回收站中。
向窗体上添加两个TButton组件,一个用于创建新的文件夹,另一个用于删除新创建的文件夹,设计完成的窗体如图1所示。
图1 主界面
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); 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. |
图2 程序运行的初始画面
单击“创建”按钮就会在程序实例所在的目录中创建一个子目录test,单击“删除”按钮就可以将新创建的test子目录删除。本实例介绍了如何创建文件夹,并且为删除文件夹提供了两种途径——一种是删除文件夹到回收站中,另外一种就是直接删除。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者