5

我想创建一个目录TestDir,但前提是该目录不存在。我找不到检查该目录是否存在的方法。

我正在使用以下函数来创建目录。

CreateDir('TestDir')

我应该如何确保仅在不存在时才使用此CreateDir功能?TestDir

4

3 回答 3

19

在 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');
于 2013-02-19T06:43:59.017 回答
11

SysUtils调用中有一个例程DirectoryExists应该完全满足您的需要...

于 2013-02-19T06:42:13.760 回答
2

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;
于 2016-07-30T01:55:34.683 回答