我有以下代码,它在给定路径的情况下读取文件夹名称。
string[] dirNames =(Directory.GetDirectories(@"c:\test\project\"));
foreach(string name in dirNames)
{
Console.WriteLine(name);
}
问题是dirNames数组是用路径存储目录名。虽然我只想存储目录文件名无路径。我可以在foreach循环中删除它,但我想最初存储在带有out路径的数组中。请让我知道如何解决它。 谢谢
答案 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)