我想在文件夾中的文件,並在它下面的代碼不會得到其子文件夾中的文件subfolders.The:如何遍歷c#.net中目錄中的所有文件?
string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");
誰能請告訴我如何實現這在C#.NET?
我想在文件夾中的文件,並在它下面的代碼不會得到其子文件夾中的文件subfolders.The:如何遍歷c#.net中目錄中的所有文件?
string[] files = Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs");
誰能請告訴我如何實現這在C#.NET?
string[] files =
Directory.GetFiles(txtPath.Text, "*ProfileHandler.cs", SearchOption.AllDirectories);
這最後一個參數的效果正是你指的是什麼。將其設置爲AllDirectories包括子文件夾中的每個文件,並將其設置爲TopDirectoryOnly如果您只想搜索給定的目錄而不是子文件夾。
參考MDSN的細節:https://msdn.microsoft.com/en-us/library/ms143316(v=vs.110).aspx
如果你的文件夾結構中存在循環,這將會無限循環。請參閱http://msdn.microsoft.com/en-us/library/ms143448.aspx – 2013-10-02 07:31:37
嘗試下面的代碼
Directory.GetFiles(txtFolderPath.Text, "*ProfileHandler.cs",SearchOption.AllDirectories)
可能是你可以嘗試用小的改動此功能;
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
Here是實際的代碼。嘗試一些修改。
你可以看看出深層的文件夾複製這個頁面,它使用遞歸方法遍歷throught文件,並有一些非常好的建議,比如濾波技術等
http://www.codeproject.com/Tips/512208/Folder-Directory-Deep-Copy-including-sub-directori
我一直首選MSDN的做事方法。在[此鏈接](http://msdn.microsoft.com/en-us/library/07wt70x2.aspx)的底部,它們提供了一個具有控制檯程序(C#)的遞歸示例。 – Justin 2013-05-04 01:30:08
@Panuvin - 注意:MSDN代碼有點危險。對於非常大的文件夾和子文件夾內容(很多很多文件),你可以得到一個StackOverflow異常(因爲遞歸代碼) – Joezer 2014-05-28 07:12:30