dengweiqi 发表于 2013-10-22 11:36:37

如何打开同一文件夹内多个txt文件

如何打开同一文件夹内多个txt文件 谢谢

cyl675 发表于 2013-10-22 13:15:18

帮助函数中FileFindFirstFile有现成的例子
可以用FileFindFirstFile("*.txt")函数参考

--------------------------------------------------------------------------------

FileFindFirstFile
返回一个依照搜索的字符串得到的搜索"句柄".


FileFindFirstFile ( "文件名" )


参数
文件名 要搜索的文件的完整或部分字符串(支持 * 和 ? 等通配符)

返回值
成功: 返回一个搜索"句柄",用于后来的 FileFindNextFile 函数调用.
失败: 返回值为-1说明遇到错误. 如果文件夹为空,将还会设置 @error 为 1.

注意/说明
要搜索的字符串是不区分大小写的.
通配符:一般而言,星号 * 可代替零个或多个字符,而问号 ? 则可代替零个或单个字符.若指定的搜索字符串中只有通配符(或者是"*.*"),请查看下面的示例并留意返回值!

你可以使用一个通配符来匹配部分文件名,例如: a*.b?.
?? 似乎是等于 * (在 Microsoft 文档资料中没有描述).
当扩展名使用 3 个字符搜索,则任何与这3个字符相符的扩展名都将匹配, 例如. "*.log" 将匹配 "test.log_1". (在 Microsoft 文档资料中没有描述).

在使用 FileFind...等函数完成搜索后务必调用 FileClose() 函数来释放搜索句柄.

使用任意通配符都会将会返回匹配的文件夹名称.


相关
FileClose, FileFindNextFile
示例/演示

;=============================
;例子1:显示当前目录中所有文件的文件名
;=============================
Local $hSearch = FileFindFirstFile("*.*")

; 检查搜索是否成功
If $hSearch = -1 Then
    MsgBox(4096, "错误", "没有文件/目录 匹配搜索")
    Exit
EndIf

While 1
    Local $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop

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

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

;=============================
;例子2:递归查找当前目录及其子目录下的所有文件
;=============================
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

menfan1 发表于 2013-11-10 16:28:26

命令行打开也行(支持通配符)
页: [1]
查看完整版本: 如何打开同一文件夹内多个txt文件