Как перебрать все файлы в каталоге в С#.net?

Я хочу получить файлы в папке, а также в ее подпапках. Следующий код не получает файлы в своей подпапке:

string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");

Может кто-нибудь скажет мне, как реализовать это в С#.net?

Ответ 1

string[] files = 
    Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);

Этот последний параметр влияет именно на то, о чем вы говорите. Установите для AllDirectories значение AllDirectories для каждого файла, в том числе во вложенных папках, и установите его TopDirectoryOnly, если вы хотите выполнять поиск только в каталоге, а не вложенных папках.

Подробнее см. в MDSN: https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx

Ответ 2

попробуйте под кодом

Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)

Ответ 3

Вы можете взглянуть на эту страницу, показывая Deep Folder Copy, она использует рекурсивные средства для итерации файлов и имеет некоторые действительно полезные советы, такие как методы фильтрации и т.д.

http://www.codeproject.com/Tips/512208/Folder-Directory-Deep-Copy-including-sub-directori

Ответ 4

Возможно, вы можете попробовать эту функцию с небольшими изменениями;

public function RecursiveFiles(FolderPath)

Dim folder As DirectoryInfo = New DirectoryInfo(FolderPath )
Dim Subfolders() As DirectoryInfo = folder .GetDirectories()
Dim strFiles() As FileInfo = myfolder.GetFiles()
For Each myItem As DirectoryInfo In mySubfolders
RecursiveFiles(myItem.FullName)
Next

end function


Здесь - это фактический код. Попробуйте с некоторыми изменениями.