51Testing软件测试论坛

标题: 求解!!!~~~~ [打印本页]

作者: haoainics1    时间: 2012-9-25 12:03
标题: 求解!!!~~~~
Dim fileCount
Set fso =CreateObject("scripting.filesystemobject")
set folderOBJ = fso.GetFolder("c:\myfolder")
fileCount = folderOBJ.Files.Count
For i = 0 to fileCount -1
msgbox folderOBJ.Files.Item(i).name
Next
错在那 求赐教!!!小弟新手一枚!!
作者: xjwldlover    时间: 2012-9-25 12:49
本帖最后由 xjwldlover 于 2012-9-25 12:56 编辑

...执行环境、报错信息、错误位置
作者: joykao    时间: 2012-9-25 14:08
不带你这么执行的吧,试试看这样的方法

Set fso =CreateObject("scripting.filesystemobject")
set folderOBJ = fso.GetFolder("D:\myfolder")
set fileName=folderOBJ.Files
      For Each f in fileName
      s = f.name
   msgbox s
Next

这样文件夹下的所有文件的名字都能出来
作者: haoainics1    时间: 2012-9-25 17:16
回复 3# joykao


    你的代码是正确的!!~~事先我也试过了,但是我需要的是下面这段代码的解释!!!
      msgbox folderOBJ.Files.Item(i).name(这段代码是错误的,我是根据QTP的提示敲出来的)
求解释!!~~~错误原因
作者: xjwldlover    时间: 2012-9-25 22:52
是因为files.Item(key),其中参数key是文件名字(不是目录或者数字哦)


  1. Dim filesys, demofolder, filecoll, selectfile
  2. Set filesys = CreateObject("Scripting.FileSystemObject")
  3. Set demofolder = filesys.GetFolder("E:\TDDOWNLOAD")
  4. Set filecoll = demofolder.Files
  5. Set selectfile = filecoll.Item("Delphi_sn.txt")
  6. WScript.Echo selectfile.Name

复制代码


遇到此类问题想要找到错误原因,需要将过长的语句分解开,比较好确认是那个方法出错了

如有错误,请各位指正~
作者: joykao    时间: 2012-9-26 10:18
回复 4# haoainics1

msgbox folderOBJ.Files.Item(i).name


参数填的不对吧?你这样循环其实没什么意义的,因为文件夹下有好多文件,同类型的不同类型的,个人觉得如果你非要用这种方式的话,其实你要知道文件的名字吧,那还要用这种方法去取干嘛呢?多此一举喽




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2