我有一条像这样的路径
string path = @"C:foobartemptestfile.txt";
并希望获取文件的文件夹名称 - 在这种情况下,预期结果为"test"
.
有没有一种与path.SubString(path.LastIndexOf('/')
等相比更优雅的构建方式。
你必须使用Path.GetDirectoryName (path);
string path = "C:/foo/bar/yourFile.txt";
string folderName = Path.GetFileName(Path.GetDirectoryName(path));
或
string path = "C:/foo/bar/yourFile.txt";
string folderName = new DirectoryInfo(path).Name;
或
string path = "C:/foo/bar/yourFile.txt";
string folderName = new FileInfo(path).Directory?.Name;
更多信息在这里: https://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname(v=vs.110(.aspx
您可以使用以下DirectoryInfo.Name
获取文件的父目录的名称:
new FileInfo(@"C:foobartemptestfile.txt").Directory.Name
这将从示例中返回"test"。
使用静态Path
类:
Path.GetFileName(Path.GetDirectoryName(path))
你应该使用Path.GetDirectoryName()
,然后Path.GetFileName()
.
此示例返回您请求的内容:
var fileName = @"C:foobartemptestfile.txt";
var directoryPath = Path.GetDirectoryName(fileName);
var directoryName = Path.GetFileName(directoryPath);
Console.WriteLine(directoryName);
结果:测试