当我有这个目录路径时:
C:\Program Files (x86)\Embarcadero\
我正在寻找的功能应该返回:
C:\Program Files (x86)\
我已尝试过此代码,但它仅适用于文件,不适用于目录:
function GetParentDirectory(const Path: string): string;
begin
Result := ExpandFileName(Path);
end;
有谁知道我应该使用什么来返回某个目录的父文件夹的路径?
答案 0 :(得分:16)
您可以使用以下两种方式:
从文件夹名称:
ExtractFilePath(ExcludeTrailingPathDelimiter('C:\Parent\Child\'));
从文件名:
ExtractFilePath(ExcludeTrailingPathDelimiter(ExtractFilePath('C:\Parent\Child\app.exe')));
答案 1 :(得分:12)
在较新版本的delphi中,您可以使用TDirectory
IOUtils
TDirectory.GetParent(ExcludeTrailingPathDelimiter(YourPath))
答案 2 :(得分:5)
试试这个:
ExtractFileDir('C:\Path\Path2') gives 'C:\Path'
请注意
ExtractFileDir('C:\Path\Path2\') gives 'C:\Path\Path2'
感谢TLama:
ExtractFileDir(ExcludeTrailingBackslash('C:\Path\Path2')) gives 'C:\Path'
ExtractFileDir(ExcludeTrailingBackslash('C:\Path\Path2\')) gives 'C:\Path'