2

我可以在几台装有 Windows 7 SP1 的不同计算机上执行此操作。

这可以在记事本(或任何其他使用的应用程序OpenFileDialog)中复制

  1. 创建 DOCX 的快捷方式
  2. 启动记事本
  3. 文件,打开
  4. 过滤 *.txt
  5. 浏览到 *.docx 快捷方式的位置

*.docx 是我能找到的唯一一个不过滤的快捷方式扩展。到目前为止,我唯一的解决方法是让我的应用程序在用户选择文件后检查文件扩展名。

是否有某种方法可以OpenFileDialog按照用户的期望过滤掉 *.docx.lnk 文件?

为什么只有 Office 文件扩展名受到影响?

4

1 回答 1

1

只有 Office 2007+ 文档的快捷方式受到影响。(快捷方式实际上有一个 .lnk 扩展名,被 shell 隐藏,即 Windows 资源管理器)

当指定掩码“*.txt”时, FindFirstFile找不到这些文件,因此这是 shell 所做的。

您可以尝试禁用相应的 shell 插件以确定哪个插件负责该行为(为了安全起见:禁用插件,通过任务管理器杀死并重新启动资源管理器,然后在再次测试之前重新启动您的进程)。

我检查了最明显的候选人,找不到任何人。


编程建议:验证您的输入。在您的情况下,这是文件内容,而不是文件扩展名!

我可以在“打开”对话框中指定任何字段,即使您限制了蒙版。
我可以将我的文本文件保存为“really.important”,并且仍然希望在您的应用程序中打开它。
我可以将我的 word 文件保存为“真正的 word document.txt”,在你的应用程序中打开它,至少希望你不会崩溃——

于 2012-10-25T08:48:37.733 回答