0

指定したファイル パスからすべてのフォルダーを探索する VB6 のループ プロシージャがあります。次に、検出された各フォルダーに MP3 ファイルが含まれているかどうかを知る必要があります。dirこのコマンドは多くのリソースを消費するため、使用したくありません。FSO、API などを使用してこれを実行しようとしましたが、解決策が見つかりません。

助けてくれてありがとう。

4

2 に答える 2

4

VB6 の Dir$() 関数は、FindFirstFile などの非常に軽量なラッパーです。なぜ FSO の方が軽量または高速であるとあなたが考えるのか、私にはわかりません。

Dir$() の最大の重大な制限は、これが ANSI 関数であり、最初の検索の状態をリセットせずに既に進行中の 2 番目の検索によって「中断」できないことです。

とにかく「多くのリソースを消費する」とはどういう意味ですか?

DirLister 軽量 Dir() wrapperでプロセスをラップする Class を投稿しました。

于 2011-09-25T00:02:19.267 に答える
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の使用法に関する優れたMicrosoftの記事もここにあります。

于 2011-09-24T23:02:23.953 に答える