我正在使用c#.net窗體窗體應用程序。 我必須在defaultsetting.xml文件中保存很少的輸入,但是如果有與具有相同文件名「defaultsetting.xml」的無效文件,我應該在狀態欄中顯示消息。我該怎麼做?如果文件名已存在則顯示一條消息
回答
您可以使用File.Exists(路徑)檢查文件是否存在,然後顯示您的消息。
您的意思是StatusStrip?
只需向您的StatusStrip添加ToolStripStatusLabel並設置標籤的Text屬性即可。
要檢查文件是否存在,請使用System.IO.File.Exists(filepath)。
if (System.IO.File.Exists(@"C:\defaultsettings.xml"))
{
statusbar1.Text = "Default Settings already exists";
}
另外,您可以使用此:
StreamWriter sw = null;
try
{
sw = new StreamWriter((Stream)File.Open(@"C:\DefaultSettings.txt", FileMode.CreateNew));
sw.WriteLine("Test");
}
catch (IOException ex)
{
if (ex.Message.Contains("already exists"))
{
statusbar1.Text = "File already exists";
}
else
{
MessageBox.Show(ex.ToString());
}
}
finally
{
if (sw != null)
{ sw.Close(); }
}
不要使用File.Exists
!
千萬不要使用File.Exists
,它總是引入競爭條件。
取而代之的是,使用「僅限創建」選項以寫模式打開文件,如果文件已存在(以及其他錯誤,例如沒有在該目錄中寫入的權限,網絡共享斷開連接等等)等等)
問問自己:用戶需要知道該文件無法保存?
如果否,那麼通過覆蓋文件來處理它們的情況。由於較少的用戶界面摩擦/垃圾郵件,它將創造更好的體驗。
例A
if (File.Exists(path))
File.Delete(path);
Save("defaultsettings.xml");
如果是,然後檢查文件是否存在,並通過任意顯示MessageBox
或您的應用程序StatusStrip
改變文本標籤通知用戶。
實例B
if (File.Exists(path))
this.m_StatusBarLabel.Text = "Error: Could not write to file: \"" + path + "\"";
else
Save("defaultsettings.xml");
凡m_StatusBarLabel
是ToolStripStatusLabel
您添加到您的狀態條控件。使用Visual Studio中的設計器一起創建它(這很簡單)。
提示:如果用戶需要執行某些操作,請將文本設置爲HyperLink或添加Click事件。
HTH,
已經調用File.ExistedInTheRecentPast來停止它。 http://blogs.msdn.com/b/jaredpar/archive/2009/12/10/the-file-system-is-unpredictable.aspx – 2010-06-10 01:09:08
@ BenVoight。感謝您的鏈接本。我同意你的看法,即文件系統應該被視爲一個動態共享資源,因爲你不是唯一一個訪問它的人。在瞭解這一點的同時,這個問題和我的答案的重點是如何/何時通知用戶*情況。 – Dennis 2010-06-10 01:54:11
- 1. 如果列不存在,則顯示一條消息?
- 2. 如果文件已存在,如何顯示消息
- 3. 如果記錄已存在,則顯示消息
- 4. 如果變量輸入不同,則顯示一條消息
- 5. 選擇記錄,但如果爲空,則顯示一條消息
- 6. 如果angularjs中的數組爲空,則顯示一條消息
- 7. 如果用戶未登錄,則顯示一條消息
- 8. SSRS:如果報告爲空,則有條件地顯示消息
- 9. 如果僅在第一次選中複選框,則會顯示一條消息
- 10. 條件格式:如果存在文本,則突出顯示列
- 11. 顯示一條消息
- 12. 如果文件已存在,則重命名文件
- 13. 顯示一條消息,如果文件不在Shiny中的工作目錄中
- 14. 如果沒有結果,顯示一條消息jQuery Mobile 1.4.3
- 15. 如何顯示一條消息,如果文件沒有上傳到R Shiny?
- 16. 如果表單在過濾後不顯示任何結果,則顯示一條消息
- 17. 如果用戶已經喜歡的東西顯示一條消息
- 18. 如果容差條件不符合,則提示消息
- 19. 在Android上顯示一條消息
- 20. 在Ajax.BeginForm上傳文件後顯示一條消息
- 21. 如果信息已更新,則顯示文本其他隱藏
- 22. 如果圖像文件不存在,則顯示另一個
- 23. Django--如果頁面中沒有內容,則顯示一條消息
- 24. 如果可滾動的TableLayout是空的,則顯示一條消息
- 25. 如果一個表中的ID存在顯示消息
- 26. 顯示一條消息,用戶如果字段爲空
- 27. 如果ajaxform成功或失敗,顯示一條消息
- 28. 搜索過濾器如果爲空顯示一條消息
- 29. 如果查詢條件滿足,訪問顯示消息框
- 30. 我想在取回結果時顯示一條消息
請描述更多它引入了一個競爭條件? – abatishchev 2010-06-09 12:38:50
http://en.wikipedia.org/wiki/Race_condition – Jimmy 2010-06-09 13:18:54
http://blogs.msdn.com/b/jaredpar/archive/2009/12/10/the-file-system-is-unpredictable.aspx http: //blogs.msdn.com/b/ericlippert/archive/2008/09/10/vexing-exceptions.aspx http:// stackoverflow。com/questions/265953 /如何容易檢查,如果訪問被拒絕的文件在網/ 265958#265958 – 2010-06-10 01:04:58