VBA:在windows 7中,使用别名目录中的DIR()失败检查文件是否存在
我有一个文件位于“C:\Users\kris\u r\Application Data\PovX.ini”中。只需预测问题-此路径在Watch fram中正确显示 以下功能在我的Windows XP和MS Word 2010上运行时没有任何问题:VBA:在windows 7中,使用别名目录中的DIR()失败检查文件是否存在,vba,ms-word,Vba,Ms Word,我有一个文件位于“C:\Users\kris\u r\Application Data\PovX.ini”中。只需预测问题-此路径在Watch fram中正确显示 以下功能在我的Windows XP和MS Word 2010上运行时没有任何问题: Public Function FileExists(filename As String) As Boolean If (Dir(filename, vbNormal Or vbReadOnly Or vbHidden Or vbSyste
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\u 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()方法也不起作用。因为
vbAlias
仅适用于Macintosh
请看这个
常量值说明
---------------------------------------------------------------------------------
vbNormal 0 Normal(Dir和SetAttr的默认值)
vbReadOnly 1只读
VB2隐藏
vbSystem 4系统文件
VB8卷卷标
vbDirectory 16目录或文件夹
自上次备份以来,vbArchive 32文件已更改
vbAlias 64在Macintosh上,标识符是一个别名。
ok很明显vbAlias是错误的,但为什么它不适用于链接?