我正在嘗試遍歷將文件夾A中的每個文件夾名稱寫入字符串數組的文件夾結構。如何遍歷將每個文件夾名稱寫入字符串數組的文件夾
IE:
Folder A
-Folder A1
-Folder A2
-Folder A3
-Folder A4
-Folder A5
-Folder A6
,然後是能夠做到這一點在C#內的每個子文件夾的每個文件名到單獨的字符串數組
我想。有人可以幫我解決這個問題,因爲我不確定從哪裏開始解決這個問題。
我正在嘗試遍歷將文件夾A中的每個文件夾名稱寫入字符串數組的文件夾結構。如何遍歷將每個文件夾名稱寫入字符串數組的文件夾
IE:
Folder A
-Folder A1
-Folder A2
-Folder A3
-Folder A4
-Folder A5
-Folder A6
,然後是能夠做到這一點在C#內的每個子文件夾的每個文件名到單獨的字符串數組
我想。有人可以幫我解決這個問題,因爲我不確定從哪裏開始解決這個問題。
這是另一種方法,你可以做到這一點。你可能仍然可以重構這個
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
雖然所有其他答案都非常好,但這是最能幫助我並且最接近我的要求的答案。不用說其他答案非常好。非常感謝您對此事提供的所有協助。 –
您已經擁有了: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()
;
}
}
}
請記住,當問問題顯示你已經嘗試過的代碼的起點有很長的路要走。 – Travis
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –