Лучший способ узнать, есть ли в папке указанные типы файлов - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть процедура цикла в VB6, которая исследует все папки с указанным путем файла. Затем мне нужно знать, содержит ли каждая обнаруженная папка файлы MP3. Я не хочу использовать команду dir, потому что она требует много ресурсов. Я пытался сделать это с помощью FSO, API и т. Д., Но не могу найти решение.

Спасибо за любую помощь.

Ответы [ 2 ]

4 голосов
/ 25 сентября 2011

Функция Dir $ () в VB6 - довольно легкая оболочка для FindFirstFile и его друзей. Я не уверен, почему вы думаете, что FSO будет легче или быстрее.

Самым большим серьезным ограничением функции Dir $ () является то, что это функция ANSI, и она не может быть «прервана» при втором поиске, когда он уже выполняется без сброса состояния первого поиска.

Что значит "занимает много ресурсов"?

Я разместил класс, обертывающий процесс, в DirLister облегченная оболочка Dir () .

0 голосов
/ 25 сентября 2011

Вы пробовали функцию API FindFirstFile?Это должен быть ваш лучший выстрел.В codeproject есть пример 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

Вы также можете найти хорошую статью для Microsoft по использованиюAPI здесь .

...