基 础 函 数 参 考


FileFindNextFile

返回 FileFindFirstFile 搜索句柄的对应文件名.

FileFindNextFile ( 搜索句柄 )

参 数

搜索句柄 由 FileFindFirstFile 函数返回的搜索句柄.

返 回 值

成功: 返回 FileFindFirstFile 搜索句柄的对应文件名, @extended 设置为 1, 文件名是一个目录.
失败: 设置 @error 为 1, 没有更多匹配的文件/目录.

备 注

必须先调用 FileFindFirstFile 函数建立搜索并获得搜索句柄.
此后每次调用 FileFindNextFile 函数都会返回与提供给 FileFindFirstFile 函数的搜索字符串匹配的下一个文件名.
当 @error = 1 时, 则已不能再找到匹配文件.

完成 FileFind... 搜索, 必须调用 FileClose() 函数释放搜索句柄.

相 关 函 数

FileClose, FileFindFirstFile

函 数 示 例


; 显示当前目录所有文件的文件名
Local $search = FileFindFirstFile("*.*")

; 检查搜索是否成功
If $search = -1 Then
    MsgBox(0, "错误", "没有匹配搜索模式的文件或目录")
    Exit
EndIf

While 1
    Local $file = FileFindNextFile($search)
    If @error Then ExitLoop

    MsgBox(4096, "找到的文件:", $file)
WEnd

; 关闭搜索句柄
FileClose($search)

;=============================
;附加示例: 递归查找当前目录及其子目录下的所有文件(3.3.7.20 无此示例)
;=============================
FindAllFile(@ScriptDir)

Func FindAllFile($sDir)
    Local $hSearch = FileFindFirstFile($sDir & "\*.*")
    ; 检查搜索是否成功
    If $hSearch = -1 Then Return
    While 1
        Local $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        
        If @extended Then
            FindAllFile($sDir & "\" & $sFile)
            ContinueLoop
        EndIf
        FileWriteLine("找到的文件.txt",$sDir & "\" & $sFile)
    WEnd
    ; 关闭搜索句柄
    FileClose($hSearch)
EndFunc

provider with jb51.net (unicode)