作者:ifx0448363 | 2023-08-29 11:01
如果我有一个字符串变量,它具有:
"C:\temp\temp2\foo\bar.txt"
而且我想得到
"富"
做这个的最好方式是什么?
1> Jon Skeet..:
使用:
new FileInfo(@"C:\temp\temp2\foo\bar.txt").Directory.Name
如果有人需要完整的目录路径,请使用`new FileInfo(@"C:\ temp\temp2\foo\bar.txt").而不是DirectoryName`.
根据http://msdn.microsoft.com/en-us/library/system.io.fileinfo.fileinfo.aspx,如果调用者没有所需的权限,则FileInfo构造函数可以抛出.有没有替代方案只会在没有任何IO的情况下解析字符串?
字符串操作:var dir = _installPath.Split(new [] {Path.DirectorySeparatorChar},StringSplitOptions.RemoveEmptyEntries).Last();
2> Handleman..:
我不同意Skeet,但我一直都在使用
Path.GetFileNameWithoutExtension(@"C:\temp\temp2\foo\bar.txt")
我怀疑FileInfo实际上是触及文件系统来获取它的信息,因为我期望GetFileNameWithoutExtension只是字符串操作 - 所以一个在另一个上的性能可能会更好.
我今天学到了两件事......阅读问题并且永远不同意Skeet.
Path.getDirectoryName没有完全符合他的要求吗?
3> Ananth..:
我认为最简单的解决方案是
DirectoryInfo dinfo = new DirectoryInfo(path);
string folderName= dinfo.Parent.Name;