トップ回答者
Silverlight4でOpenFileDialogにて特定の文字列で始まるファイルのみ表示したい

質問
-
OpenFileDialogで表示されるファイルを"TEST"から始まるファイルのみ表示したい場合、どのようにすればよいか教えてください。
Silverlight3では、次のとおり設定することで実現していました。
OpenFileDialog OpenFileDlg = new OpenFileDialog();
OpenFileDlg.Filter = "Test File(TEST*.txt)|TEST*.txt";
if (OpenFileDlg.ShowDialog() != false)
{
FileName.Text = OpenFileDlg.File.Name;
}しかし、VisualStudioのSilverlightビルドオプションの「対象のSilverlightバージョン」を「Silverlight 4」に変更すると上記コードを実行すると「ファイル フィルターの形式が無効です」というエラーが発生します。
よろしくお願いいたします。
2011年5月19日 3:07
回答
-
フィルター パターンは、ダイアログ ボックスにどのファイルを表示するかを決定します。同じ説明のフィルター パターンは、セミコロン (;) で区切ります。厳密な文字列を指定するか、またはワイルドカード文字 (*) とピリオド (.) の組み合わせを使用して、一致するファイル名または拡張子を指定できます。
とありますので、TEST* は、許されていないと解釈して良いのではないでしょうか。
本筋からはずれますが、この文脈において、"TEST*.txt" が許されないと解釈する理由に納得がいきませんでした。
"TEST*.txt" は厳密な文字列ではありませんが、ワイルドカードとピリオドを組み合わせた一致するファイル名ではありませんか?さて、英語版のドキュメントに気にかかる記述がありました。
http://msdn.microsoft.com/en-us/library/system.windows.controls.openfiledialog.filter(v=vs.95).aspx
"Silverlight 4 requires the wildcard character in the extension portion of the filter. Not using one will cause an exception"Silverlight 4 で仕様が変わったようですね。
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。- 回答としてマーク F_Terry 2011年5月23日 2:03
2011年5月20日 14:07
すべての返信
-
こんにちは。
MSDN(http://msdn.microsoft.com/ja-jp/library/system.windows.controls.openfiledialog.filter(VS.95).aspx)を見ると
フィルター パターンは、ダイアログ ボックスにどのファイルを表示するかを決定します。同じ説明のフィルター パターンは、セミコロン (;) で区切ります。厳密な文字列を指定するか、またはワイルドカード文字 (*) とピリオド (.) の組み合わせを使用して、一致するファイル名または拡張子を指定できます。
とありますので、TEST* は、許されていないと解釈して良いのではないでしょうか。
K.Oumi2011年5月20日 5:33 -
フィルター パターンは、ダイアログ ボックスにどのファイルを表示するかを決定します。同じ説明のフィルター パターンは、セミコロン (;) で区切ります。厳密な文字列を指定するか、またはワイルドカード文字 (*) とピリオド (.) の組み合わせを使用して、一致するファイル名または拡張子を指定できます。
とありますので、TEST* は、許されていないと解釈して良いのではないでしょうか。
本筋からはずれますが、この文脈において、"TEST*.txt" が許されないと解釈する理由に納得がいきませんでした。
"TEST*.txt" は厳密な文字列ではありませんが、ワイルドカードとピリオドを組み合わせた一致するファイル名ではありませんか?さて、英語版のドキュメントに気にかかる記述がありました。
http://msdn.microsoft.com/en-us/library/system.windows.controls.openfiledialog.filter(v=vs.95).aspx
"Silverlight 4 requires the wildcard character in the extension portion of the filter. Not using one will cause an exception"Silverlight 4 で仕様が変わったようですね。
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。- 回答としてマーク F_Terry 2011年5月23日 2:03
2011年5月20日 14:07 -
Silverlight4で、タイトルに明記してますファイル選択ダイアログに特定の文字列で始まるファイルのみ表示するにはどのようにすればよいでしょうか?
現状、すべてのファイルを表示し、選択後に該当するファイルかをチェックしようと考えていますが、使い勝手が非常に悪いので何とかしたいと考えています。公的な方法が仕様変更で失われたのであれば、方法はないのかもしれません。
(横取りする、API を直接使用するという方法は Silverlight の普通の状態では使えないでしょうから)ほかに類似の操作性を実現するコンポーネントなどがあれば別ですが、Silverlight の性質上、打つ手なしな予感がします。
もちろん、私自身が Silverlight に詳しくないので、見えてないだけかもしれませんが。
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。2011年5月23日 14:35