您现在的位置是:时尚 >>正文

易语言怎么检测文件夹是否存在

时尚839人已围观

简介易语言里判断文件夹是否存在,最直接的办法是用“文件是否存在”这个命令——但它有个坑,很多人第一次用都会踩。你传一个文件夹路径进去,它返回的是“假”。原因很简单,这个命令底层调的是文件系统API,判断的 ...

易语言里判断文件夹是易语言检否存在,最直接的测文办法是用“文件是否存在”这个命令——但它有个坑,很多人第一次用都会踩。否存你传一个文件夹路径进去,易语言检它返回的测文是“假”。原因很简单,否存这个命令底层调的易语言检是文件系统API,判断的测文是文件,不是否存目录。所以如果你写 文件是易语言检否存在 ("C:\test"),哪怕 C 盘下确实有个叫 test 的测文文件夹,结果照样是否存假。

那正确姿势是易语言检什么?用“取文件属性”命令。这个命令返回一个整数,测文代表路径对应对象的否存属性值。文件夹的属性值里包含“目录”标志位,通常是 16。你拿返回值跟 16 做位与运算,非零就说明是文件夹。代码大概长这样:

.版本 2 .子程序 _按钮1_被单击 .局部变量 属性值, 整数型 属性值 = 取文件属性 ("C:\test") .如果真 (位与 (属性值, 16) ≠ 0) 信息框 ("文件夹存在", 0, ) .如果真结束 

注意“取文件属性”在路径不存在时返回 -1。所以更稳妥的写法是先判断属性值是否等于 -1,再判断位与结果。有人会问,为什么不直接用“文件是否存在”配合“取文件属性”两步走?没必要,一步到位更干净。

另一个路子是用“寻找文件”命令。传 "C:\test\*.*" 进去,如果能找到东西,说明文件夹存在。但这个方法有缺陷:空文件夹找不到任何文件,会返回空文本,你就误判成不存在了。所以“寻找文件”只适合判断“文件夹存在且里面有文件”的场景,不能作为通用检测手段。

我实际写过一个批量整理工具,需要遍历用户指定目录下的所有子文件夹。当时偷懒用了“文件是否存在”来判断,结果所有文件夹都被跳过,调试了半天才反应过来是命令选错了。后来换成“取文件属性”加位与判断,一次通过。这个教训说明,易语言的核心库命令命名有时候会误导人——“文件是否存在”听起来像能判断任何路径,实际上只管文件。

还有一点,路径末尾带不带反斜杠不影响“取文件属性”的判断。"C:\test" 和 "C:\test\" 返回的属性值一样。但如果你用“寻找文件”,末尾不带反斜杠会出问题,它会把 test 当成文件名去匹配,而不是目录。这种细节在文档里写得不清不楚,只能自己踩坑记下来。

如果你需要判断的是网络路径或者 UNC 路径,比如 "\\server\share\folder",取文件属性同样有效,前提是当前用户有访问权限。权限不足时返回 -1,跟路径不存在的结果一样。这时候你没法区分是“真不存在”还是“没权限看”,得配合“取错误信息”之类的命令进一步排查。实际项目中,我一般会在判断前先尝试用“运行”或“打开文件”去触碰一下路径,确认权限没问题再做属性判断。

总结一下操作要点:用“取文件属性”而不是“文件是否存在”;返回值 -1 表示路径无效或无权访问;位与 16 非零表示是目录;空文件夹用“寻找文件”会漏判。把这几个点记住,文件夹检测就不会再出错了。

Tags:

相关文章

  • 网站举报

    时尚

    网站举报按钮,是互联网时代最讽刺的发明之一。它总被放在页面角落,灰扑扑的,像极了一个心虚的告密者。可真正需要它的时候,你往往找不到它——要么藏进三级菜单,要么需要你填完一份长达三页的表单,上传身份证、 ...

    【时尚】

    阅读更多
  • 2023年创文公益广告

    时尚

    2023年春天,我在成都玉林菜市场门口等人。旁边一辆电动自行车后座上,绑着一块褪色的公益广告牌——“垃圾不落地,城市更美丽”。广告牌边角卷起,露出底下2019年的旧版面。车主是个卖菜大姐,她说这块牌子 ...

    【时尚】

    阅读更多
  • 影视网站免费在线观看

    时尚

    打开浏览器,在搜索框里敲下“免费在线观看”六个字,跳出来的结果能翻几十页。这事本身就挺魔幻的——一边是各大平台铺天盖地的版权警告,一边是无数小网站活得有滋有味。我前阵子想重温一部九十年代的港片,正版渠 ...

    【时尚】

    阅读更多


友情链接