? 發問時間: 電腦與網際網路程式設計 · 9 年前

VB6 程式翻譯

請問專家能否解說下方的程式

很想了解下方的程式,卻有看沒懂?? ="=

勞煩專家們解說,謝謝!

Function GetAllFiles(ByVal path As String, ByVal filespec As String, Optional RecurseDirs As Boolean) As Collection

Dim spec As Variant

Dim file As Variant

Dim subdir As Variant

Dim subdirs As New Collection

Dim specs() As String

' initialize the result

Set GetAllFiles = New Collection

' ensure that path has a trailing backslash

If Right$(path, 1) <> "\" Then path = path & "\"

' get the list of provided file specifications

specs() = Split(filespec, ";")

' this is necessary to ignore duplicates in result

' caused by overlapping file specifications

On Error Resume Next

' at each iteration search for a different filespec

For Each spec In specs

' start the search

file = Dir$(path & spec)

Do While Len(file)

' we've found a new file

file = path & file

GetAllFiles.Add file, file

' get ready for the next iteration

file = Dir$

Loop

Next

' first, build the list of subdirectories to be searched

If RecurseDirs Then

' get the collection of subdirectories

' start the search

file = Dir$(path & "*.*", vbDirectory)

Do While Len(file)

' we've found a new directory

If file = "." Or file = ".." Then

' exclude the "." and ".." entries

ElseIf (GetAttr(path & file) And vbDirectory) = 0 Then

' ignore regular files

Else

' this is a directory, include the path in the collection

file = path & file

subdirs.Add file, file

End If

' get next directory

file = Dir$

Loop

' parse each subdirectory

For Each subdir In subdirs

' use GetAllFiles recursively

For Each file In GetAllFiles(subdir, filespec, True)

GetAllFiles.Add file, file

Next

Next

End If

End Function

1 個解答

評分
  • 9 年前
    最佳解答

    此function 是可指定路徑,檔案規格 它會把所有符合的檔案找出來,包含子目錄.

    碰到子目錄時,它會呼叫自己(遞迴),直至找到結束,

    其結果以collection 的方式存在(GetAllFiles.Add file, file 存入)

    '備註英文就是說明,用Google 翻譯一下就了解了.

    個別指令主要是檔案目錄操作,可用debug.print 看它是在作什麼

還有問題?馬上發問,尋求解答。