51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2147|回复: 3
打印 上一主题 下一主题

[原创] 如何输出给定路径下所有文件的文件名(包括子文件夹)

[复制链接]
  • TA的每日心情
    擦汗
    2016-5-4 10:34
  • 签到天数: 68 天

    连续签到: 1 天

    [LV.6]测试旅长

    跳转到指定楼层
    1#
    发表于 2011-12-31 15:17:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 Shawn_xiao 于 2011-12-31 15:28 编辑

    function GetAllFile(FolderPath)
    Dim fso,f,s
    Dim filecol,foldercol
       Set fso = CreateObject("Scripting.FileSystemObject")
            Set f=fso.getfolder(FolderPath)
                    set filecol=f.Files
                    set foldercol=f.subfolders
            print f.Name&vbnewline
             for each fo in foldercol
                   s=s&fo.name
                   s=s&vbnewline
              if (fo.isrootfolder) then
                   for each fi in filecol
                        s=s&fi.name
                        s=s&vbnewline
                    next
                else ???
              end if
               next
      print s
    end function
    这个方法明显不行   我知道要用递归,可是学VBS时间很短  求帮助啊
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2015-9-9 15:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2012-1-4 12:46:47 | 只看该作者
    不用递归吧,这样看看能不能把子文件夹下的文件名弄出来:
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder("C:\scripts")
    Set colFolders = objFolder.SubFolders

    For Each folder in colFolders
            Set files=folder.Files
            For Each file in files
                    Wscript.echo file.Name
            Next
    Next
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-5-4 10:34
  • 签到天数: 68 天

    连续签到: 1 天

    [LV.6]测试旅长

    3#
     楼主| 发表于 2012-1-4 14:11:14 | 只看该作者
    回复 2# anuo_363


        这个只能输出子文件的,而不能输出更里层文件夹的文件名
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-9-9 15:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2012-1-5 13:29:16 | 只看该作者
    抱歉,没看清题目,看起来是要递归,修改代码,我自己运行了一下,似乎可行,请测试:
    function GetAllFiles(folderPath)
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(folderPath)
    Set colFiles=objFolder.Files
    Set colSubFolders = objFolder.SubFolders

    For Each file in colFiles
        Wscript.echo file.Name
    Next

    For Each subFolder in colSubFolders
            GetAllFiles(subFolder.Path)
    Next
    End function

    GetAllFiles("C:\\Scripts")
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-6 12:51 , Processed in 0.067589 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表