我有一个位于“C:\Users\kris_r\Application Data\PovX.ini”中的文件。只是预测问题 - 这条路径在 Watch 框架中正确显示..
下面的功能在我的 Windows XP 和 MS Word 2010 上运行没有任何问题:
Public Function FileExists(filename As String) As Boolean
If (Dir(filename, vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbArchive OR vbAlias) = "") Then
FileExists = False
Else:
FileExists = True
End If
End Function
但是在 Windows 7 上,此目录是“C:\Users\kris_r\AppData\Roaming\”的别名。如果我运行上面的代码,它会生成以下错误:运行时错误'52':错误的文件或编号
我编写了基于FileSystemObject的程序,该程序有效:
Public Function FileExists(filename As String) As Boolean
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename) Then FileExists = True Else FileExists = False
End Function
这样编程问题就解决了。但是我不明白为什么,即使使用选项vbAlias, DIR() 方法也不起作用。