我想创建一个名为TestDir
的目录,但仅限于该目录不存在时。我找不到检查该目录是否存在的方式。
我正在使用以下功能来创建目录。
CreateDir('TestDir')
如果CreateDir
不存在,我应该如何确保使用此TestDir
功能?
答案 0 :(得分:10)
在Delphi XE2中,您可以使用IOUtils
单位TDirectory
记录,如下所示:
uses IOUtils;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not TDirectory.Exists('test') then
TDirectory.CreateDirectory('test');
在Delphi7中,您可以使用SysUtils单元中的DirectoryExists功能:
uses SysUtils, Windows;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not DirectoryExists('test') then
CreateDir('test');
答案 1 :(得分:9)
SysUtils
中有一个名为DirectoryExists
的例程应该完全符合您的需要......
答案 2 :(得分:1)
CreateDir只能创建比现有目录“更高”一级的目录。例如,CreateDir('C:\ Folder1 \ Folder2')仅在C:\ Folder1已存在时有效,同样CreateDir('C:\ F1 \ F2 \ F3')仅在C:\ F1 \ F2存在时有效。要在一个步骤中创建“中间”文件夹,请使用Delphi的ForceDirectories。
procedure TForm1.Button2Click(Sender: TObject);
begin
if DirectoryExists(Edit1.Text) then
ShowMessage(Edit1.Text + ' exists already')
else begin
ForceDirectories(Edit1.Text);
if DirectoryExists(Edit1.Text) then
ShowMessage('Folder created: ' + Edit1.Text)
else
ShowMessage('Could not create ' + Edit1.Text);
end;
end;