Board logo

标题: vb中FSO对象的一般操作? [打印本页]

作者: 只爱陌生人    时间: 2006-8-1 18:50     标题: vb中FSO对象的一般操作?

Dim m_objFSO As Scripting.FileSystemObject '定义文件系统对象
    Set m_objFSO = New Scripting.FileSystemObject
    Dim objFolder As Scripting.Folder
    Set objFolder = m_objFSO.GetFolder(mypath)      'mypath="c:\program files\aaa\"
    Dim objFile As Scripting.File '文件对象
   For i = 1 To objFolder.Files.Count
    Debug.Print objFolder.Files.Item(i)
Next[/colo]
'For Each objFile In objFolder.Files
'    Debug.Print objFile.ShortName
'Next

上面红色部分的代码不能正常运行,总是出现 实时错误5,无效的过程调用或参数

问题出在哪里。难道就只能用for each吗?难道不能用自定义的循环变量(i,j k....)来控制???
objfolder.files.item(i)不行,objfolder.files.item(i).shortname也不行???
只能用objfile.shortname????
作者: 只爱陌生人    时间: 2006-8-1 19:06

根据对象浏览器里的说明,files.item返回的是file,folder.item返回的是files,        file.shortname返回的是string ,
那么,files.item(i).shortname返回的应该是字符串啊?怎么会连基本的debug.print 都不可以呢???


PS,最后,直接用Scripting.FileSystemObject的getfile方法得到并赋值给file,这样就可以用i,j,k等控制了。
     不过,想来没有道理啊???哎,VB中所谓的面向对象看来还真没JAVA简单啊!
    郁闷中..........

[ 本帖最后由 只爱陌生人 于 2006-8-1 20:03 编辑 ]
作者: Nothing    时间: 2006-8-1 20:38

使用For Each<
作者: 只爱陌生人    时间: 2006-8-1 21:03

本来用FSO对象应该蛮简单的,但是,哎,还不如用drive,dir file控件来得方便。至于界面,把drive ,dir file隐藏之后就一样了,只是不知道运行效率怎样?
作者: Nothing    时间: 2006-8-1 21:05

使用对像并不见得快,你可以使用DIR函数。




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0