如何在delphi XE2中检查目录是否存在?

时间:2013-02-19 06:34:32

标签: delphi delphi-xe2 delphi-7

我想创建一个名为TestDir的目录,但仅限于该目录不存在时。我找不到检查该目录是否存在的方式。

我正在使用以下功能来创建目录。

CreateDir('TestDir')

如果CreateDir不存在,我应该如何确保使用此TestDir功能?

3 个答案:

答案 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;