2016-12-16 140 views
1

我想查找並添加特定目錄及其所有子目錄中的所有文件名,並將它們添加到C#列表中。我曾嘗試使用DirectoryInfo,但它只返回當前目錄中的文件,而不是其子文件夾。任何簡單的方法來實現這個?列出目錄中的所有文件和子目錄C#

+0

您需要創建一個遞歸方法以便提取完整目錄的s結構 –

+0

var list = Directory.EnumerateFiles(@「C:\ MyFiles \」,「*」,SearchOption.AllDirectories).ToList();' –

回答

1

SearchOption.AllDirectories可能會爲您做訣竅,因爲它包含當前目錄及其所有子目錄在搜索操作中。此選項包括重新分析點,例如搜索中的裝入驅動器和符號鏈接。

//Add System.IO then 
String[] allfiles = Directory.GetFiles("DirectorytoSearch", "*", SearchOption.AllDirectories); 

,並把它們轉換成列出

List<string> allfiles = Directory.GetFiles("DirectorytoSearch", "*",SearchOption.AllDirectories).ToList(); 
+1

更好地將'*'作爲通配符而不是'*。*' (如果一個文件沒有擴展名呢?) –

+0

是! @DmitryBychenko這是一個好主意。謝謝:) –

+0

Directory.GetFiles()返回一個沒有.ToList()選項的字符串[]。 –

0

,如果你需要將它們存儲在列表這裏是代碼:

string[] entries = Directory.GetFileSystemEntries(folderPath, "*", SearchOption.AllDirectories); 
List<string> filesPaths = entries.ToList(); 

其中「*」是關於搜索條件例如,如果只需要列出的xml文件,請將其更改爲「* .xml」