c++ - Is it possible to use quotation marks for FindFirstFile() function?
问题描述
I try to return a specific .xls file with FindFirstFile(). Howerver it also returns .xlsx, due to naming convention. It is possible to use "*.xls" in the file explorer to return only .xls files. Does this work for the functi
解决方案
正如@Hans Passant 所说,您被对8.3 MSDOS 名称的传统支持所困扰。
你LovelyTable.xlsx
也有一个次要名字,比如LOVELY~1.XLS
这个第二个名字就是FindFirstFile()/FindNextFile()
给你的。避免此类结果的唯一可靠方法是重新检查返回给您的内容。
如果您不想更改应用程序,您还可以从卷中删除短名称并禁用它们的生成。您可以检查fsutil命令(其8dot3name
子命令),但请注意,即使在今天,这也可能会破坏某些软件。(例如认为它安装在 下的软件C:\PROGRA~2\
)
我认为 FindFirstFileEx()
可以过滤掉 8.3 的名称:
FindFirstFileEx(searchPattern, FindExInfoBasic, ...)
但它不能。感谢@RbMm 将其清除。FindExInfoBasic
只避免填写WIN32_FIND_DATA
'cAlternateFileName
字段。您仍然会收到通过短名称发现的文件。
推荐阅读
- android - Firebase 数据库和身份验证中同一用户的 UID 不同
- pytorch - 来自变换损失函数的 Pytorch 参数矩阵
- python - 查找关于特定键的字典列表的最小值
- sql - 检查指定磁盘是否有足够的空间用于数据库备份
- docker - 如何路由到服务中的特定容器
- python - “pubg”而不是“PUBG”——区分大小写的输入问题
- caching - 如果现代计算机在没有高速缓存的情况下运行,它的性能会发生多大的变化?
- dart - 尝试在滚动上附加新元素时 ListVIew 项目被重复
- javascript - webpack 4 库目标 umd x 不是构造函数
- python - 如何在 Django 的投票中创建一个用户投票者来投票给一个选项