CnCommon单元之ForceDirectories【2】

复制代码
// 递归创建多级子目录
function ForceDirectories(Dir: string): Boolean;
begin
  Result := True;

  if Length(Dir) = 0 then
  begin
    Result := False;
    Exit;
  end;
  Dir := ExcludeTrailingBackslash(Dir);
  if (Length(Dir) < 3) or DirectoryExists(Dir)
    or (_CnExtractFilePath(Dir) = Dir) then
    Exit;                                // avoid 'xyz:\' problem.
  Result := ForceDirectories(_CnExtractFilePath(Dir)) and CreateDir(Dir);
end;
复制代码

可以单独创建一个目录,也可以创建多级子目录。

在DELPHI的系统单元中也集成了这个函数,可能是修改重新封装了下函数,删除了容错语句和linux代码。

知识点1:ExcludeTrailingBackslash函数的功能是删除最后的\,有就删除,没有就不删除

知识点2:递归创建

多级子目录的情况下从最后面的目录逐步往前取,一直取到c:这种字样就退出函数,在从父目录一个个往里创建子目录

递归语法平时很少用到,这次学到了。以后可以也跟着使用。

posted on   YXGust  阅读(87)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本

导航

点击右上角即可分享
微信分享提示