指定したファイル パスからすべてのフォルダーを探索する VB6 のループ プロシージャがあります。次に、検出された各フォルダーに MP3 ファイルが含まれているかどうかを知る必要があります。dir
このコマンドは多くのリソースを消費するため、使用したくありません。FSO、API などを使用してこれを実行しようとしましたが、解決策が見つかりません。
助けてくれてありがとう。
VB6 の Dir$() 関数は、FindFirstFile などの非常に軽量なラッパーです。なぜ FSO の方が軽量または高速であるとあなたが考えるのか、私にはわかりません。
Dir$() の最大の重大な制限は、これが ANSI 関数であり、最初の検索の状態をリセットせずに既に進行中の 2 番目の検索によって「中断」できないことです。
とにかく「多くのリソースを消費する」とはどういう意味ですか?
DirLister 軽量 Dir() wrapperでプロセスをラップする Class を投稿しました。
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の記事もここにあります。