如何获取某个目录的父文件夹的路径?

时间:2014-03-25 16:35:18

标签: delphi

当我有这个目录路径时:

C:\Program Files (x86)\Embarcadero\

我正在寻找的功能应该返回:

C:\Program Files (x86)\

我已尝试过此代码,但它仅适用于文件,不适用于目录:

function GetParentDirectory(const Path: string): string;
begin
  Result := ExpandFileName(Path);
end;

有谁知道我应该使用什么来返回某个目录的父文件夹的路径?

3 个答案:

答案 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'