天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧软件 >> 正文

Delphi编程创建和删除文件夹

2011-5-3不详佚名

本实例介绍如何在程序中创建文件夹,并且可以将新创建的文件夹删除到回收站中。
    向窗体上添加两个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子目录删除。
    本实例介绍了如何创建文件夹,并且为删除文件夹提供了两种途径——一种是删除文件夹到回收站中,另外一种就是直接删除。

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行