VBA:在windows 7中,使用别名目录中的DIR()失败检查文件是否存在

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

我有一个文件位于“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 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是错误的,但为什么它不适用于链接?