delphi 创建目录(文件夹)

创建目录(文件夹)

代码

调用 MkDir 创建目录

procedure TForm1.Button1Click(Sender: TObject);
begin
  //创建目录
  MkDir('D:\测试目录1');
  //如果目录存在时引发异常
  try
    MkDir('D:\测试目录1');
  except
    ShowMessage(Exception(ExceptObject).Message);
  end;
  //父目录不存在时引发异常
  try
    MkDir('D:\测试目录1\目录1\目录2');
  except
    ShowMessage(Exception(ExceptObject).Message);
  end;
  //使用相对路径创建目录
  MkDir('测试目录1');
end;

调用 CreateDir 创建目录

procedure TForm1.Button2Click(Sender: TObject);
begin
  //创建目录,成功返回True
  if CreateDir('D:\测试目录2') then
    ShowMessage('创建目录成功');
  //如果目录存在,返回False
  if not CreateDir('D:\测试目录2') then
    ShowMessage('目录已存在');
  //父目录不存在,返回False
  if not CreateDir('D:\测试目录2\目录1\目录2') then
    ShowMessage('父目录不存在');
  //使用相对路径创建目录
  CreateDir('测试目录2');
end;

调用 ForceDirectories 创建目录

procedure TForm1.Button3Click(Sender: TObject);
begin
  //创建多级目录
  //目录不存在时才创建,创建失败返回False,已存在时不创建返回True
  //父目录不存在时会创建
  if ForceDirectories('D:\测试目录3\目录1\目录2') then
    ShowMessage('创建多级目录成功');
  //按层级创建,目录中包含特殊字符不创建,全部目录创建成功才返回True
  if not ForceDirectories('D:\测试目录3\目录1\<目录2>\目录3') then
    ShowMessage('部分目录创建成功');
  //使用相对路径创建目录时引发异常
  try
    ForceDirectories('测试目录3\目录1\目录2');
  except
    ShowMessage(Exception(ExceptObject).Message);
  end;
end;

调用 TDirectory.CreateDirectory 创建目录

uses System.IOUtils;

procedure TForm1.Button4Click(Sender: TObject);
begin
  //创建多级目录
  //目录不存在时才创建,已存在时不创建
  //父目录不存在时会创建
  TDirectory.CreateDirectory('D:\测试目录4\目录1\目录2');
  //按层级创建,目录中包含特殊字符不创建
  TDirectory.CreateDirectory('D:\测试目录4\目录1\<目录2>\目录3');
  //使用相对路径创建目录
  TDirectory.CreateDirectory('测试目录4\目录1\目录2');
end;

方法

System.MkDir

procedure MkDir(const S: string);
procedure MkDir(P: PChar);

unit

System

创建一个新的子目录。其路径由字符串 S 或 P 指定。路径中的最后一项不能为已存在的文件名。

MkDir 只创建最后一个目录; 它不会创建父目录,而 ForceDirectories 会。

在 Delphi 中,{$I+} 使用异常处理运行时错误。 当使用 {$I-} 时,使用 IOResult 检查 I/O 错误。

System.SysUtils.CreateDir

function CreateDir(const Dir: string): Boolean;

unit

System.SysUtils

创建一个新目录。如果成功创建新目录,返回值为 True;如果发生错误,返回值为 False

System.SysUtils.ForceDirectories

function ForceDirectories(Dir: string): Boolean;

unit

System.SysUtils

在给定路径创建一个新目录,包括根据需要创建父目录。该目录必须是完全限定的路径名。如果路径中给定的目录还不存在,将尝试创建它们。

如果成功创建所有必需的目录,则返回 True,如果无法创建所需的目录,则返回 False

不要用空字符串调用 ForceDirectories,会引发异常。

Vcl.FileCtrl 单元(仅限 Windows)包含一个已弃用的 ForceDirectories 函数。 System.SysUtils.ForceDirectories 是首选,可用于多设备应用程序。

System.IOUtils.TDirectory.CreateDirectory

class procedure CreateDirectory(const Path: string); static;

unit

System.IOUtils

在给定路径上创建一个新目录。如果路径中给定的目录还不存在,将尝试创建它们。

如果给定的路径无效或包含无效字符,会引发异常。

THE END