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:这种字样就退出函数,在从父目录一个个往里创建子目录
递归语法平时很少用到,这次学到了。以后可以也跟着使用。
如果觉得文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
作者:YXGust
出处:https://www.cnblogs.com/YXGust/p/14721689.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
本博文版权归本博主所有,转载请注明原文链接