2

Windows 7 SP1 を搭載した複数の異なるコンピューターでこれを行うことができました。

これは、メモ帳 (または を使用する他のアプリOpenFileDialog)で複製できます。

  1. DOCX へのショートカットを作成する
  2. メモ帳を起動
  3. ファイル、開く
  4. *.txt でフィルタリング
  5. *.docx ショートカットの場所を参照

*.docx は、フィルタリングされない唯一のショートカット拡張子です。これまでのところ、私の唯一の回避策は、ユーザーがファイルを選択した後にアプリケーションがファイル拡張子をチェックすることです。

OpenFileDialogユーザーが期待するように *.docx.lnk ファイルを除外する方法はありますか?

Office ファイル拡張子のみが影響を受けるのはなぜですか?

4

1 に答える 1

1

影響を受けるのは、Office2007以降のドキュメントへのショートカットのみです。(ショートカットには、実際にはシェル、つまりWindowsエクスプローラーによって隠されている.lnk拡張子があります)

マスク"*.txt"が指定されている場合、 FindFirstFileはこれらのファイルを検出しないため、これはシェルが実行することです。

それぞれのシェルプラグインを無効にして、どのプラグインがその動作の原因であるかを判断することができます(安全のために、プラグインを無効にし、タスクマネージャーでエクスプローラーを強制終了して再起動し、プロセスを再起動してから再度テストします)。

最も明白な候補を確認しましたが、見つかりませんでした。


プログラミングのアドバイス:入力を確認してください。あなたの場合、これはファイルの内容であり、ファイル拡張子ではありません!

マスクを制限している場合でも、[開く]ダイアログで任意のフィールドを指定できます。
テキストファイルを「really.important」として保存しても、アプリケーションで開くことができます。
私のワードファイルを「本当にワードdocument.txt」として保存し、これをアプリケーションで開いて、少なくともクラッシュしないことを期待できます-

于 2012-10-25T08:48:37.733 に答える