如何获取文件夹的根目录+1?
例子:
输入:C:\Level1\Level2\level3
输出应该是:
Level1
如果输入是Level1
输出应该是 Level1
如果输入是 C:\输出应该是空字符串
是否有 .Net 函数可以处理此问题?
Directory.GetDirectoryRoot
将始终返回 C:\
最佳答案
您可以使用Path
-class + Substring
+ Split
删除根并获取顶级文件夹。
// your directory:
string dir = @"C:\Level1\Level2\level3";
// C:\
string root = Path.GetPathRoot(dir);
// Level1\Level2\level3:
string pathWithoutRoot = dir.Substring(root.Length);
// Level1
string firstFolder = pathWithoutRoot.Split(Path.DirectorySeparatorChar).First();
另一种方法是使用 DirectoryInfo
类,它是 Parent
属性:
DirectoryInfo directory = new DirectoryInfo(@"C:\Level1\Level2\level3");
string firstFolder = directory.Name;
while (directory.Parent != null && directory.Parent.Name != directory.Root.Name)
{
firstFolder = directory.Parent.Name;
directory = directory.Parent;
}
但是,我更喜欢“轻量级”字符串方法。
关于c# - 获取文件夹的根目录 +1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058164/