我在 VB6 中有一个循环过程,它从指定的文件路径探索所有文件夹。然后我需要知道每个检测到的文件夹是否包含 MP3 文件。我不想使用该dir
命令,因为它占用了大量资源。我尝试过使用 FSO、API 等进行此操作,但找不到解决方案。
谢谢你的帮助。
VB6 的 Dir$() 函数是 FindFirstFile 和朋友的一个非常轻量级的包装器。我不确定您为什么认为 FSO 会更轻或更快。
Dir$() 最大的严重限制是它是一个 ANSI 函数,并且它不能被第二次搜索“中断”,而无需重置第一次搜索的状态。
“占用大量资源”到底是什么意思?
我在DirLister 轻量级 Dir() wrapper发布了一个包装过程的类。
您是否尝试过 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 使用的不错的 Microsoft 文章。