2016-04-02 32 views
1

C#を使用してVisual Studio 2015でアプリケーションを作成すると、ユーザーが望む場所にファイルを保存したいので、プロジェクトにSaveFileDialogオブジェクトを追加しましたが、ファイル名を入力すると、保存ダイアログに次のように表示されます。saveFileDialog:ファイル名が正しくありません

ファイル名が無効です。

(ファイル名のファイルパスと文字を確認しました)

DialogResult dr = saveFileDialog1.ShowDialog(); 
if (dr == System.Windows.Forms.DialogResult.OK) 
{ 
    Save(saveFileDialog1.FileName); 
} 

問題はどのようなものです:

私のコードでは、ダイアログを表示するには?

enter image description here

enter image description here

+0

「保存(saveFileDialog1.FileName);」とはどういう意味ですか? –

+0

これは、ユーザーが選択したファイルに情報を書き込む私の方法です。 – wiki

答えて

1

あなたのFilterプロパティの周りに二重引用符を削除する必要があります。それは

saveFileDialog1.Filter = "Product list|*.json"; 

二重引用符でなければなりませんコードで

入力した名前の妥当性にSaveFileDialogチェックを混同しているようです。 ( 'Save as Type'コンボボックスにテキストがどのように表示されているかに注意してください)。
また、拡張子が付いたファイル名を入力すると、このエラーは表示されなくなります。

最初は、特定のフィルタテキストが、必須の説明ではなく説明として解釈されるため、問題の原因となっているようです。 Filter仕様の必要に応じて拡張子を指定します。

しかし、また、あなたがこの

saveFileDialog1.Filter = "\"Product files|*.json\"|*.json"; 

のようにそれを記述する場合は、付属フィルタ文字列は、必要な形式の欠けていると言って引数例外エラーが発生します。

ここで唯一の結論は、フィルタ文字列に二重引用符を使用できないことです。

+0

返信いただきありがとうございます。 – wiki

関連する問題