在没有路径的数组中存储名称

本文关键字:存储 数组 路径 | 更新日期: 2023-09-27 18:06:26

我有以下代码读取给定路径的文件夹名称。

string[] dirNames =(Directory.GetDirectories(@"c:'test'project'"));
foreach(string name in dirNames)
{
   Console.WriteLine(name);
}

问题是dirNames数组用path存储目录名。而我只是想存储的目录文件名没有路径。我可以在foreach循环中删除它但我想把它存储在有out路径的数组中。请告诉我如何修理它。由于

在没有路径的数组中存储名称

您可以获得一个新的数组(或列表),其中的路径被删除:

var dirNamesNew = dirNames.Select( x => x.Replace(path,"")).ToArray();

或在单个指令中:

string[] dirNames = (Directory.GetDirectories(path)).Select(x => x.Replace(path,"")).ToArray();

Select将获取名称,将路径替换为无字符,然后将其转换回Array。

Path类中使用GetDirectoryName:

  foreach(string name in dirNames)
  {
      Console.WriteLine(Path.GetDirectoryName( name ));
  }

怎么样:

string[] dirNames = Directory.GetDirectories(@"c:'test'project'").Select(x => Path.GetDirectoryName(x)).ToArray();

尝试创建一个DirectoryInfo并为每个目录投射名称:

var onlyDirectoryNames = Directory.GetDirectories(@"c:'test'project'").Select(x => new DirectoryInfo(x).Name)