欢迎来到山村网

Delphi编程创建和删除文件夹

2019-03-02 10:13:42浏览:488 来源:山村网   
核心摘要:  向窗体上添加两个TButton组件,一个用于创建新的文件夹,另一个用于删除新创建的文件夹,设计完成的窗体如图1所示。  图1

  向窗体上添加两个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子目录删除。

  本实例介绍了如何创建文件夹,并且为删除文件夹提供了两种途径——一种是删除文件夹到回收站中,另外一种就是直接删除。

(责任编辑:豆豆)
下一篇:

jquery封装的对话框简单实现

上一篇:

C语言运算符及其优先级汇总表口诀

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com