我在VB6中有一个循环过程,它探索指定文件路径中的所有文件夹。
然后我需要知道每个检测到的文件夹是否包含MP3文件。
我不想使用dir
命令,因为它占用了大量资源。
我已尝试使用FSO,API等进行此操作,但我找不到解决方案。
感谢您的帮助。
答案 0 :(得分:4)
VB6的Dir $()函数是FindFirstFile和朋友的一个很好的包装器。我不确定为什么你认为FSO会更轻或更快。
Dir $()的最大严重限制是它是一个ANSI函数,当一个正在进行而没有重置第一个搜索的状态时,它不能被第二次搜索“中断”。
“占用大量资源”是什么意思呢?
我在DirLister lightweight Dir() wrapper发布了一个包装过程的类。
答案 1 :(得分:0)
您是否尝试过FindFirstFile API函数?这应该是你最好的一击。在codeproject A Faster Directory Enumerator
中有一个C#示例VB签名如下:
<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使用情况的精彩微软文章。