首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有遗留文件后缀的Dir

使用带有遗留文件后缀的Dir
EN

Stack Overflow用户
提问于 2021-07-07 14:22:47
回答 1查看 50关注 0票数 2

最近被问到的question包含以下代码:

代码语言:javascript
复制
strFilename = Dir$(fPath & "*.xls")

它用于查找、xls、xlsx结尾的文件(成功)。

我的问题是,为什么会找到xlsx文件?它不遵循通配符模式匹配的正常规则。如果我没有看到这样的使用方式,我将(并多次)使用以下文件来结束xlsxlsx

代码语言:javascript
复制
strFilename = Dir$(fPath & "*.xls*")

我想,也许使用Dir$的模式匹配会自动地在搜索模式的末尾添加一个*的等价物--但经过"*.xl"的一些测试,我可以排除这一点。另外,为了使事情更加混乱,"*.xls"将不会获取xlsmxlsb文件。

因此,这可能意味着Dir$对遗留文件后缀和当前文件后缀有一定的内建识别,或者应该包含一个内置的相似性/同义词列表。但这似乎是一种方式--因为"*.xlsx"不会找到xls文件。

有人知道是否是这样吗?还有其他人吗?它们在哪里都有记录吗?什么时候变的?

此外,如果我想创建一个只找到xls文件的,那么在不进行进一步检查的情况下,我该如何做呢?

在这个问题中,P.S. DirDir$是可互换的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-07 14:53:31

VBA中的Dir行为类似于命令shell上的。命令shell Dir与长名称(即在Windows中看到的名称)和短名称相匹配。如果您从未听说过这一点,请参见例如https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#short-vs-long-names。我找到的最好的文档是https://ss64.com/nt/syntax-wildcards.html --它只是声明“通配符匹配短文件名和长文件名”。

xlsx-file的短名称的扩展名是xls,这就是Dir查找文件的原因。

据我所知,没有什么可以做的,您必须手动检查真正的文件名。另见https://stackoverflow.com/a/66674917/7599798

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

https://stackoverflow.com/questions/68287857

复制
相关文章

相似问题

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