我正在尝试遍历文件夹结构,将文件夹A中的每个文件夹名称写入字符串数组。
IE:
Folder A
-Folder A1
-Folder A2
-Folder A3
-Folder A4
-Folder A5
-Folder A6
然后将每个子文件夹中的每个文件名改为单独的字符串数组
我希望能够在C#中做到这一点。有人可以帮我解决这个问题,因为我不知道从这个问题开始。
答案 0 :(得分:0)
你已经拥有:System.IO.DirectoryInfo
为你提供了所有这些,甚至更多。但是,在这里,你去了一个包装器:
class DirectoryInfoWrapper
{
private DirectoryInfo BackingStore { get ; set ; }
public DirectoryInfoWrapper( DirectoryInfo dir )
{
this.BackingStore = dir ;
return ;
}
public DirectoryInfoWrapper Parent
{
get
{
DirectoryInfo parent = this.BackingStore.Parent ;
return parent != null ? new DirectoryInfoWrapper(parent) : null ;
}
}
public string Name
{
get
{
return this.BackingStore.Name ;
}
}
public DirectoryInfoWrapper[] Subdirectories
{
get
{
return this
.BackingStore
.EnumerateDirectories()
.Select( x => new DirectoryInfoWrapper(x) )
.ToArray()
;
}
}
public string[] Files
{
get
{
return this
.BackingStore
.EnumerateFiles()
.Select( x => x.Name )
.ToArray()
;
}
}
}
答案 1 :(得分:0)
这是你可以做到的另一种方式。你可能仍然可以重构这个
var path = @"C:\\Katas";
var folders = Directory.GetDirectories(path); //Your string array of folders
var files = new List<string>();
foreach (String s in folders)
{
var fileList = Directory.GetFiles(s).ToList();
files.AddRange(fileList);
}
files.ToArray(); //Your string array of files