[VB] 디렉토리내 파일 찾기

2002. 6. 2. 22:27Scrapbook/개발 및 프로그래밍

반응형
보다 빠르게 파일 찾기를 위해서는 api함수를 이용하면 될것 같군요.

함수는 FindFirstFile입니다.

다음은 그 예입니다.
''파일명의 최대 길이 정의
Private Const MAX_PATH = 260

'' 리턴받을 파일에 관한 일부 세부정보 구조체
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

'' 검색된 파일 또는 하위디렉토리의 정보를 받을 구조체를 정의합니다.
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
''API함수를 정의합니다.
Private Declare Function FindFirstFile Lib "kernel32" _
Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData _
As WIN32_FIND_DATA) As Long

Private Sub Command1_Click()
If FileFound(Text1) Then
msgbox "검색이 완료됨"
End If
End Sub

Function FileFound(strFileName As String) As Boolean
Dim lpFindFileData As WIN32_FIND_DATA
Dim hFindFirst As Long

''파일/디렉토리 검색
hFindFirst = FindFirstFile(strFileName, lpFindFileData)

''파일 찾기가 성공하면, 해당 리턴값들이 구조체 선언된 lpFindFileData
''의 변수들에 활당되며, hFindFirst에는 0이상의 값이 리턴됩니다.
If hFindFirst > 0 Then
FileFound = True ''검색되면 True값 반환
Else
FileFound = False ''파일/디렉토리가 없으면 False 반환
End If
End Function


반응형