标题: [求助]FileExists方法的运行结果和预期相反(附代码)
[打印本页]
作者: dopodelf
时间: 2009-1-16 14:04
标题: [求助]FileExists方法的运行结果和预期相反(附代码)
On Error Resume Next
filespec="d:\sources.list"
Set myFso=CreateObject("Scripting.FileSystemObject")
If (getfso=myFso.FileExists(filespec)) Then
wscript.echo getfso
Else
wscript.echo "文件或文件夹不存在"
End If
Set fso=Nothing
源程序如上,文件sources.list实实在在地在D盘根目录下存在,但是运行结果却是"文件或文件夹不存在",而如果我把两句echo语句换一下位置,输出结果是空白。
不知道问题究竟出在哪里,请大家帮忙分析一下问题所在,谢谢!
作者: radem
时间: 2009-1-16 14:15
作者: slore
时间: 2009-1-16 14:16
getfso 初始化为0即为假
myFso.FileExists(filespec)) 文件存在所以为真
假=真?不成立……进入else
作者: radem
时间: 2009-1-16 14:32
On Error Resume Next
filespec="d:\sources.list"
Set myFso=CreateObject("Scripting.FileSystemObject")
If myFso.FileExists(filespec)=True Then
wscript.echo filespec & " 存在"
Else
wscript.echo "文件或文件夹不存在"
End If
Set myFso=Nothing
作者: dopodelf
时间: 2009-1-16 14:32
非常感谢slore,我一直以为getfso=myFso.FileExists(filespec)这样写是赋值,原来在if后面就变成判断了。那我如果要在这里赋值该怎么写呢?
作者: dopodelf
时间: 2009-1-16 14:36
作者: radem
时间: 2009-1-16 15:24
4楼不行么?已经赋值给filespec了还给getfso就没必要了吧
确实要的话,改为:
On Error Resume Next
filespec="G:\2\IpConv\ip.txt"
Set myFso=CreateObject("Scripting.FileSystemObject")
getfso=filespec
If myFso.FileExists(getfso)=True Then
wscript.echo getfso & " 存在"
Else
wscript.echo "文件或文件夹不存在"
End If
Set myfso=Nothing
作者: zydmz
时间: 2009-1-16 19:52
On Error Resume Next
filespec="d:\sources.list"
Set myFso=CreateObject("Scripting.FileSystemObject")
If myFso.FileExists(filespec) Then
wscript.echo "文件存在"
Else
wscript.echo "文件不存在"
End If
Set fso=Nothing
作者: mountvol
时间: 2009-1-17 10:24
还是习惯用Err:
On Error Resume Next
filespec = "d:\sources.list"
Set myFSO = CreateObject("Scripting.FileSystemObject")
Err.Clear
Set myFile = myFSO.OpenTextFile(filespec,1)
If Err Then
WScript.Echo Err.Description
Err.Clear
Else
WScript.Echo "OK!"
End If