2016-04-02 77 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檢查。 (請注意文本如何顯示在「另存爲類型」組合框中)。
此外,如果您鍵入帶擴展名的文件名,則此錯誤似乎消失。

起初,您的特定Filter文本似乎是導致問題的原因,因爲它被解釋爲描述,而不是強制性描述,後跟|以及Filter規範所要求的擴展名。

而且,如果你把它寫這樣

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

你會得到一個參數異常錯誤,指出所提供的過濾字符串所需格式的缺乏。

所以這裏唯一的結論是,你不能在Filter字符串中使用雙引號。

+0

非常感謝回覆。 – wiki