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 2021-04-30 13:18  YXGust  阅读(83)  评论(0编辑  收藏  举报

导航