haoainics1 发表于 2012-9-25 12:03:13

求解!!!~~~~

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:49

本帖最后由 xjwldlover 于 2012-9-25 12:56 编辑

...执行环境、报错信息、错误位置

joykao 发表于 2012-9-25 14:08:47

不带你这么执行的吧,试试看这样的方法

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

这样文件夹下的所有文件的名字都能出来{:3_74:}

haoainics1 发表于 2012-9-25 17:16:56

回复 3# joykao


    你的代码是正确的!!~~事先我也试过了,但是我需要的是下面这段代码的解释!!!
      msgbox folderOBJ.Files.Item(i).name(这段代码是错误的,我是根据QTP的提示敲出来的)
求解释!!~~~错误原因

xjwldlover 发表于 2012-9-25 22:52:48

是因为files.Item(key),其中参数key是文件名字(不是目录或者数字哦)


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



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

如有错误,请各位指正~

joykao 发表于 2012-9-26 10:18:52

回复 4# haoainics1

msgbox folderOBJ.Files.Item(i).name


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