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

时间:2014-06-03 22:15:29

标签: c# .net

我有以下代码,它在给定路径的情况下读取文件夹名称。

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

问题是dirNames数组是用路径存储目录名。虽然我只想存储目录文件名无路径。我可以在foreach循环中删除它,但我想最初存储在带有out路径的数组中。请让我知道如何解决它。 谢谢

4 个答案:

答案 0 :(得分:0)

使用GetDirectoryName课程中的Path

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

答案 1 :(得分:0)

怎么样:

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

答案 2 :(得分:0)

您可以获取一个删除路径的新数组(或列表):

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

或在一条指令中:

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

Select将获取名称,替换没有字符的路径,然后将其转换回数组。

答案 3 :(得分:0)

尝试创建DirectoryInfo并为每个目录预测名称:

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