2016-12-16 142 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”