2011-09-24 5 views
0

VB6에서 지정된 파일 경로의 모든 폴더를 탐색하는 루프 프로 시저가 있습니다. 그러면 각 감지 된 폴더에 MP3 파일이 있는지 알아야합니다. 많은 리소스를 사용하기 때문에 dir 명령을 사용하고 싶지 않습니다. FSO, API 등을 사용하여이 작업을 시도했지만 솔루션을 찾을 수 없습니다.폴더에 지정된 파일 형식이 있는지 확인하는 가장 좋은 방법

도움 주셔서 감사합니다.

답변

0

FindFirstFile API 함수를 사용해 보셨습니까? 그것은 당신의 최고의 기회가되어야합니다. VB는 서명이 이렇게되면 CodeProject의 A Faster Directory Enumerator

에서 C# 예제가있다 :

<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의 사용에 좋은 마이크로 소프트 기사를 찾을 수 있습니다에게 있습니다.

+0

정말 훌륭한 코드 소스에 관심을 가져 주셔서 감사합니다. – Geovanny1974

4

VB6의 Dir $() 함수는 FindFirstFile 및 친구들에 대한 매우 간단한 래퍼입니다. 왜 FSO가 더 가볍거나 더 빠를 것이라고 생각하는지 모르겠습니다.

Dir $()의 가장 심각한 제한 사항은 ANSI 함수이며 첫 번째 검색의 상태를 재설정하지 않고 두 번째 검색에서 "중단"될 수 있지만 이미 진행 중일 때만 가능하다는 것입니다.

어쨌든 "많은 리소스를 차지합니까?"

DirLister lightweight Dir() wrapper에 프로세스를 래핑하는 클래스를 게시했습니다.

+0

죄송합니다. 모든 이유가 있습니다. 오해했습니다. 절차가 매우 빠르고 지금은 잘 작동합니다. 감사합니다. – Geovanny1974

+0

도움이 되니 기쁩니다. 해당 링크를 다시 확인하면 필터링 할 수있는 DirLister 2가 있습니다. 및 .. 폴더 이름과 깊이 인수가 있습니다. – Bob77

관련 문제