DELPHI 创建文件目录

sundoc 2003-11-16 07:16:52
DELPHI 如何创建文件目录
...全文
275 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yckxzjj 2003-11-16
  • 打赏
  • 举报
回复
unit UFileAttr;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TFileAttrForm = class(TForm)
GroupBox1: TGroupBox;
ReadOnlyCheckBox: TCheckBox;
ArchiveCheckBox: TCheckBox;
SystemCheckBox: TCheckBox;
HiddenCheckBox: TCheckBox;
OpenDlg_File: TOpenDialog;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
OpenFileBtn: TSpeedButton;
SetFileBtn: TSpeedButton;
ExitBtn: TSpeedButton;
FileNameLabel: TLabel;
Panel4: TPanel;
CreateBtn: TSpeedButton;
Panel5: TPanel;
RemoveBtn: TSpeedButton;
procedure OpenFileBtnClick(Sender: TObject);
procedure SetFileBtnClick(Sender: TObject);
procedure ExitBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure CreateBtnClick(Sender: TObject);
procedure RemoveBtnClick(Sender: TObject);
function RemoveDirectoryEx(Dir:string):Boolean;
private
public
end;

var
FileAttrForm: TFileAttrForm;

implementation

{$R *.dfm}

function TFileAttrForm.RemoveDirectoryEx(Dir:string):Boolean;
var
SR:TSearchRec;
SearchArgument:String;
begin
//如果路径后不带反斜杠,则需加上
if Dir[Length(Dir)]<>'\' then Dir:=Dir+'\';
//对目录下的所有文件进行查询
SearchArgument:=Dir+'*.*';
//faAayFile决定了文件类型为任意类型,判断是否存在文件或文件夹
//如果存在则将其中的第一个赋给SR
if FindFirst(SearchArgument,faAnyFile,SR)=0 then
begin
repeat
begin
if (SR.Name='.') or (SR.Name='..') then continue;
if SR.Attr and faDirectory<>0 then
//删除文件夹
begin
if not RemoveDirectoryEx(Dir+SR.Name) then
result:=false;
end
else
DeleteFile(Dir+SR.Name);
end
//查找下一个,直到查找完毕
until FindNext(SR)<>0;
//关闭当前查询
FindClose(SR);
if RemoveDir(Dir) then result:=true
else result:=false;
end;
end;

procedure TFileAttrForm.OpenFileBtnClick(Sender: TObject);
var
SaveFile:String;//用于保存需更改属性文件的文件名
Attrs:Integer;
begin
try
if OpenDlg_File.Execute then
begin
SaveFile:=OpenDlg_File.FileName;
if not FileExists(SaveFile) then
MessageBox(Handle,PChar(SaveFile+'指定的文件不存在!'),PChar('警告'),MB_OK+MB_ICONWARNING)
else
begin
FileNameLabel.Caption:='文件名为:['+ExtractFileName(SaveFile)+']';
Attrs:=FileGetAttr(SaveFile);
ReadOnlyCheckBox.Checked:=(Attrs and FaReadOnly)=FaReadOnly;
ArchiveCheckBox.Checked:=(Attrs and FaArchive)=FaArchive;
SystemCheckBox.Checked:=(Attrs and FaSysFile)=FaSysFile;
HiddenCheckBox.Checked:=(Attrs and FaHidden)=FaHidden;
end;
end;
except
MessageBox(Handle,PChar('系统内部调用错误!'),PChar('警告'),MB_OK+MB_ICONWARNING)
end;
end;

procedure TFileAttrForm.SetFileBtnClick(Sender: TObject);
var
SaveFile:String;//用于保存需更改属性文件的文件名
Attrs:Integer;
begin
SaveFile:=OpenDlg_File.FileName;
if not FileExists(SaveFile) then
begin
MessageBox(Handle,PChar('指定的文件不存在!'),PChar('警告'),MB_OK+MB_ICONWARNING);
ReadOnlyCheckBox.Checked:=False;
ArchiveCheckBox.Checked:=False;
SystemCheckBox.Checked:=False;
HiddenCheckBox.Checked:=False;
end
else
begin
Attrs:=0;
if ReadOnlyCheckBox.Checked then Attrs:=Attrs+FaReadOnly;
if ArchiveCheckBox.Checked then Attrs:=Attrs+FaArchive;
if SystemCheckBox.Checked then Attrs:=Attrs+FaSysFile;
if HiddenCheckBox.Checked then Attrs:=Attrs+FaHidden;
MessageBox(Handle,'文件属性设置成功!',PChar('信息提示'),MB_OK+MB_ICONINFORMATION);
if FileSetAttr(SaveFile,Attrs)<>0 then
MessageBox(Handle,'文件属性设置失败!',PChar('信息提示'),MB_OK+MB_ICONINFORMATION);
end;
end;

procedure TFileAttrForm.ExitBtnClick(Sender: TObject);
begin
Close;
end;

procedure TFileAttrForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TFileAttrForm.CreateBtnClick(Sender: TObject);
var
MyDir:String;
begin
MyDir:=Trim(InputBox('信息提示','请输入要创建的文件夹名称:',''));
if not DirectoryExists(MyDir) then
if not CreateDir(MyDir) then
showmessage('无效的路径名称')
else
showmessage('sucessful');
end;

procedure TFileAttrForm.RemoveBtnClick(Sender: TObject);
var
RemoveDir:string;
begin
//判断用户输入的路径是否存在
RemoveDir:=Trim(InputBox('信息提示','请输入要删除文件夹或文件路径:',''));
if MessageBox(Handle,PChar('所指定的文件夹及文件将被删除!'),PChar('警告信息'),MB_OKCANCEL+MB_ICONWARNING)<>IDOK then
Exit;
if RemoveDir<>'' then
if not DirectoryExists(RemoveDir) then
Showmessage('不能找到该路径!')
else if not RemoveDirectoryEx(RemoveDir) then
//如果删除不成功,则给出提示
showmessage('Error')
else
Showmessage('指定文件夹及文件已被删除!')
else
Showmessage('无效的路径名称');
end;

end.
tjff2000 2003-11-16
  • 打赏
  • 举报
回复
CreateDir()
allyer 2003-11-16
  • 打赏
  • 举报
回复
function CreateDir(const Dir: string): Boolean;
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧