我在VB6中有一個循環過程,它可以探索指定文件路徑中的所有文件夾。 然後我需要知道每個檢測到的文件夾是否包含MP3文件。 我不想使用dir
命令,因爲它佔用了大量資源。 我已經嘗試使用FSO,API等做這個,但我找不到解決方案。知道文件夾是否具有指定文件類型的最佳方法
感謝您的任何幫助。
我在VB6中有一個循環過程,它可以探索指定文件路徑中的所有文件夾。 然後我需要知道每個檢測到的文件夾是否包含MP3文件。 我不想使用dir
命令,因爲它佔用了大量資源。 我已經嘗試使用FSO,API等做這個,但我找不到解決方案。知道文件夾是否具有指定文件類型的最佳方法
感謝您的任何幫助。
您是否嘗試過FindFirstFile API函數?這應該是你最好的選擇。還有在CodeProject A Faster Directory Enumerator
VB的簽名是這樣的一個C#示例:
<DllImport("kernel32.dll", CharSet := CharSet.Auto)> _
Private Shared Function FindFirstFile(ByVal lpFileName As String, ByRef lpFindFileData As WIN32_FIND_DATA) As IntPtr
End Function
下面是一個示例VB實現http://www.ask-4it.com/how-to-use-findfirstfile-win32-api-from-visual-basic-code-2-ca.html
您也可以找到API here的使用一個很好的Microsoft文章。
VB6的Dir $()函數是FindFirstFile和朋友上的一個很輕的包裝器。我不確定爲什麼你認爲FSO會更輕或更快。
Dir $()最大的嚴重侷限性在於它是一個ANSI函數,在不重置第一個搜索的狀態的情況下,它不能被第二次搜索「中斷」。
無論如何,「佔用大量資源」意味着什麼?
我發佈了一個類包裝過程DirLister lightweight Dir() wrapper。
對不起你有所有的理由,我錯了,程序目錄很快,現在工作很好....謝謝 – Geovanny1974
很高興它幫助。查看該鏈接,現在有一個可以過濾的DirLister 2。和..文件夾名稱,並且還有深度參數。 – Bob77
感謝您的關注,真的是一個偉大的代碼源。 – Geovanny1974