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

C#获取给定路径的文件夹深度的最佳方法?

如何解决《C#获取给定路径的文件夹深度的最佳方法?》经验,为你挑选了2个好方法。

我正在研究需要遍历文件系统的东西,对于任何给定的路径,我需要知道我在文件夹结构中的"深度".这是我目前正在使用的:

int folderDepth = 0;
string tmpPath = startPath;

while (Directory.GetParent(tmpPath) != null) 
{
    folderDepth++;
    tmpPath = Directory.GetParent(tmpPath).FullName;
}
return folderDepth;

这有效,但我怀疑有更好/更快的方式?很有必要提供任何反馈意见.



1> Paul Sonier..:

脱离我的头顶:

Directory.GetFullPath().Split("\\").Length;


对于其他有效的序列,例如C:\ Folder\..\boot.ini,将被破坏.或者,对于UNC网络路径,例如\\ server\share\file.并且,您应该使用Path.DirectorySeperatorCharacter和Path.AltDirectorySeperatorCharacter.
@Joey:我认为你的意思是[`System.IO.Path.DirectorySeparatorChar`](https://msdn.microsoft.com/en-us/library/system.io.path.directoryseparatorchar(v = vs.110). ASPX).有点令人困惑的是,[`System.IO.Path.PathSeparator`](https://msdn.microsoft.com/en-us/library/system.io.path.pathseparator%28v=vs.110%29.aspx)指的是到环境变量中的separator _between_ paths,例如`%PATH%`.
@ mklement0:你是对的。令人惊讶的是,在过去的八年中,没有人去纠正它。

2> GôTô..:

我迟到了,但我想指出Paul Sonier的回答可能是最短的,但应该是:

 Path.GetFullPath(tmpPath).Split(Path.DirectorySeparatorChar).Length;

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