2012-09-12 72 views
2

我可以在多臺使用Windows 7 SP1的計算機上執行此操作。Win32 OpenFileDialog無法過濾* .DOCX快捷方式

這可以在記事本(或使用OpenFileDialog任何其他應用程序)

  1. 創建一個快捷方式DOCX
  2. 啓動記事本
  3. 文件被複制,在* .TXT打開
  4. 過濾器
  5. 瀏覽的* .DOCX快捷鍵的位置

* .docx是我能找到的唯一沒有過濾的快捷方式擴展。到目前爲止,我唯一的解決方法是讓我的應用程序在用戶選擇文件後檢查文件擴展名。

有沒有辦法讓OpenFileDialog過濾掉* .docx.lnk文件,因爲用戶可能期望它?

爲什麼只有Office文件擴展名受到影響?

+0

實際上是所有的Office 2007+文件。所以.pptx和其他。檢查隨機4個字母的擴展名是隱藏的。 – user1666818

+0

看起來,無論過濾器擴展是什麼 - 它不只是* .txt。 – shf301

+1

對不起,不是一個編程問題。更多提醒總是驗證輸入。我的應用程序剛剛在這一點上。 – user1666818

回答

1

只有Office 2007+文檔的快捷方式才受影響。 (快捷方式實際上有一個.LNK擴展,由外殼隱藏,即Windows資源管理器)

不會用FindFirstFile不面具的「* .txt」被指定當找到這些文件,所以這是後話了殼呢。

You could attempt to disable respective shell plugins確定哪個插件負責該行爲(爲了安全起見:禁用插件,通過任務管理器關閉並重新啓動瀏覽器,然後在再次測試之前重新啓動您的過程)。

我檢查了最明顯的候選人,找不到任何。


編程建議:驗證您的輸入。在你的情況下,這是文件內容,而不是文件擴展名!

即使限制掩碼,我也可以在打開對話框中指定任何場景。
我可以將我的文本文件保存爲「really.important」,並且仍然希望在您的應用程序中打開它。
我可以保存我的word文件爲「真正的word document.txt」,在你的應用程序中打開這個文件,至少希望你不會崩潰 -