我正在使用VB.net VS2012,並且無法通過過濾器獲取文件列表。查找帶有文件名過濾器的文件
這裏是我的代碼:
Public Function SearchAndAddToListWithFilter(ByVal path As String, ByVal Recursive As Boolean, arrayListOfFilters As ArrayList, ByRef listOfFiles As List(Of FileInfo))
If Not Directory.Exists(path) Then Exit Function
Dim initDirInfo As New DirectoryInfo(path)
For Each oFileInfo In initDirInfo.GetFiles
Application.DoEvents()
For x = 0 To arrayListOfFilters.Count - 1
If (oFileInfo.Name Like arrayListOfFilters(x)) Then
listOfFiles.Add(oFileInfo)
End If
Next
Next
If Recursive Then
For Each oDirInfo In initDirInfo.GetDirectories
SearchAndAddToListWithFilter(oDirInfo.FullName, True, arrayListOfFilters, listOfFiles)
Next
End If
End Function
這裏是如何使用它的一個例子:
Dim stringFilterList As String = "*.mp3, *.docx, *.mp3, *.txt"
Dim arrayListOfFilenameFilters As New ArrayList(stringFilterList.Split(","))
Dim stringFolderPath As String = "C:\temp\folder\"
Dim booleanSearchSubFolders As Boolean = True
Dim listOfFilesFoundViaSearch As New List(Of FileInfo)
SearchAndAddToListWithFilter(stringFolderPath, booleanSearchSubFolders, arrayListOfFilenameFilters, listOfFilesFoundViaSearch)
For x = 0 To listOfFilesFoundViaSearch.Count - 1
MsgBox(listOfFilesFoundViaSearch(x).FullName)
Next
出於某種原因,代碼只是將文件添加到satisy的列表過濾器列表中的第一個條件。
我可以請一些幫助讓這段代碼工作嗎?
謝謝。
嘗試這種最簡單的方法。購買方式不介意imagelist僅適用於文件圖標。首先需要做的是,從cmb_drives.selecteditems.Tostring()獲取邏輯驅動器,並從文本框中獲取文件的開始字母以填充ListviewSubItems中的文件。 –
你可以編輯你的文章,而不是留下評論。歡迎來到stackoverflow! – Clay