c# - 获取文件夹的根目录 +1

标签 c# .net

如何获取文件夹的根目录+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/

相关文章:

c# - 使用读取和写入流保存文件时图像损坏

c# - 将焦点设置在屏幕顶部 jquery

c# - 为什么我无法捕获返回类型为 void 的异步函数中的异常?

c# - 用图表表示历史

.net - 使用WCF的应用程序结构

c# - WPF:ContentPresenter 上的 TextTrimming

c# - 读取反序列化的 xml 文件 - 具有一个值数组的类

.net - Windows 7 中的 .Net 配置工具 (mscorcfg.msc) 在哪里?

c# - 在不实例化 DbContext 的情况下以编程方式检索流畅的配置

c# - 清除 asp.net 表单中的所有字段