首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果变量和变量

如果变量和变量
EN

Stack Overflow用户
提问于 2019-09-12 21:44:00
回答 1查看 40关注 0票数 0

我找到了这个过程这里,用于测试文件是否存在:

代码语言:javascript
复制
Public Function FileExists(strFileFullPath As String) As Boolean
Dim lSize  As Long
    On Error GoTo HandleError
    lSize = -1
    If GetAttr(strFileFullPath) And vbDirectory Then GoTo HandleExit
    lSize = FileLen(strFileFullPath)
    FileExists = lSize > -1
HandleExit:
    Exit Function
HandleError:
    Resume Next
End Function

我首先想纠正的是:

代码语言:javascript
复制
    If GetAttr(strFileFullPath) And vbDirectory Then

转入:

代码语言:javascript
复制
   If GetAttr(strFileFullPath) = vbDirectory Then

但后来意外地发现,结果是一样的。

有人能解释一下第一个版本是如何解释的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 21:49:15

这里的AND按位进行比较。

GetAttr(文件名)返回一个位掩码。

如果文件只是一个目录,则将其更改为=只会返回相同的结果。如果它是隐藏的,或者存档的,或者是一个系统目录,那么它将有一个不同的值,并且它们将不再相等。按位比较可以确保至少文件名引用一个目录。

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/getattr-function

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57914879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档