当前位置:  开发笔记 > 编程语言 > 正文

从C#中的完整文件路径解析目录名称

如何解决《从C#中的完整文件路径解析目录名称》经验,为你挑选了3个好方法。

如果我有一个字符串变量,它具有:

"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;

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有