VB.Net Get All files under the directory —使用VB.Net找出 資料夾/文件夾入所有檔案

最近有朋友問如果可以用VB.Net 找出 資料夾內有什麼檔案…
我之前都用了一段時間去思考怎樣才做到
因為首先要把資料夾內的 檔案找出…
當遇到資料夾內的資料夾時…
要繼續深入/向下找其他的檔案

最後回想到之前在大學…學的東西…
[是用Haskell <– 一種Functional Programming 的語言]
我十分喜歡的
好像在 Haskell 中 不能用For Loop/While Loop
所以用了一個技巧叫”Recursion“…
Call 自己的Method 做到Loop 的效果

今次我便用了這個技巧 寫了一個小小的功能幫助自己找出 資料夾/文件夾入所有檔案
程式碼如下:

Public Function GetAllFilesOnTheDirectory(ByVal folderPath As String, ByVal includeSubdirectories As Boolean) As FileInfo()
‘建立一個FileInfo Array可以用來查詢檔案的資料
Dim FileLists As New List(Of FileInfo)
‘建立一個DirectoryInfo Object 用來查詢這個Directory
Dim dirInfo As New DirectoryInfo(folderPath)
‘把DirectoryInfo.GetFiles找到的 FileInfo Object 加到Array 上
FileLists.AddRange(dirInfo.GetFiles)
‘如果想找出全部 [includeSubdirectories = True] 的話
If includeSubdirectories Then
‘找出所有在這個資料夾入的Sub資料夾
Dim DirList() As DirectoryInfo = dirInfo.GetDirectories
‘之後用For Loop 以Recursion 的方法[自己Call 自己的形式] 來找出所有的檔案
For i As Integer = 0 To DirList.Length – 1
‘之後把找到的檔案加到Array 上
FileLists.AddRange(GetAllFilesOnTheDirectory(DirList(i).FullName, includeSubdirectories))
Next
End If
Return FileLists.ToArray
End Function

將會把這個程式碼Compile 成一個DLL 放便大家使用 =P

Hope you find it useful

One thought on “VB.Net Get All files under the directory —使用VB.Net找出 資料夾/文件夾入所有檔案

  1. Pingback: .Net Get All files under the directory Improved version—使用.Net找出 資料夾/文件夾入所有檔案改進版Share ChiWai/Share 智慧/智慧分享 – 技術分享/Tech Blog | Share ChiWai/Share 智慧/智慧分享 – 技術分享/Tech Blog

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.