Answers:
如果您绝对有绝对路径,请使用Path.GetDirectoryName(path)。
如果您可能只会得到一个相对名称,请使用new FileInfo(path).Directory.FullName。
请注意,Path和FileInfo都可以在命名空间中找到System.IO。
new FileInfo(path).Directory.FullName无论哪种情况都可以。
如果使用的是FileInfo对象,则有一种简单的方法可以string通过DirectoryName属性来提取目录的完整路径的表示形式。
FileInfo.DirectoryName通过MSDN 对财产的描述:
获取表示目录的完整路径的字符串。
用法示例:
string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:\MyDirectory"
链接到MSDN文档。
您可以Path.GetFullPath在大多数情况下使用。但是,如果您还想在文件名相对定位的情况下获取路径,则可以使用以下通用方法:
string GetPath(string filePath)
{
return Path.GetDirectoryName(Path.GetFullPath(filePath))
}
例如:
GetPath("C:\Temp\Filename.txt") 返回 "C:\Temp\"
GetPath("Filename.txt")current working directory像返回"C:\Temp\"
@"C:\MyDirectory\MyFile.bat"