我得到了這個C#窗體表單應用程序,其中我爲一些任務操作加載了XML文件或CSV文件。我有一個瀏覽按鈕。當我點擊瀏覽按鈕時,出現打開文件對話框,我可以導航到我的驅動器上的一個位置並選擇文件,然後使用上傳按鈕上傳它。 如果我加載JPG或ZIP文件或其格式爲CSV或XML以外的任何文件,我的應用程序將崩潰。是否有任何限制打開文件對話框在C#中僅打開CSV或XMl文件的方法?使用「打開文件」對話框限制可以選擇的文件
回答
使用
openFileDialog.Filter = "CSV files (*.csv)|*.csv|XML files (*.xml)|*.xml";
這樣,只有CSV文件或XML文件顯示。 但用戶也可以選擇其他文件類型,如果他們鍵入完整的名稱 - 所以檢查所選的文件名並相應地更正您的代碼。
super one dude :)) – user1501034
您也可以組合過濾器,以便用戶可以看到csv和xml文件,如下所示:openFileDialog.Filter =「Data files | * .csv; *。xml」; – sventevit
您可以使用Filter
屬性讓用戶選擇某種類型的文件。
但是!這不是保證。用戶仍然可以在文件名框中輸入'(星)。(星)'並顯示所有文件。所以你應該檢查你的代碼中的結果文件。
您可以使用Path.GetExtension()
方法執行此操作。
如上所述,您可以在打開文件對話框中應用僅顯示.xml和csv文件的過濾器。 With path.getextension http://msdn.microsoft.com/en-us/library/system.io.path.getextension.aspx您可以檢查用戶是否確實選擇了具有正確擴展名的文件。如果選擇了錯誤的擴展名,則可以提示選擇其他文件。
我強烈建議您在上傳前檢查文件擴展名。只需在用戶選擇文件後檢查擴展名即可。如果選擇了錯誤的文件,只是不要繼續上傳/處理...
這是完整示例。
/// <summary>
/// Select CSV/XML file
/// </summary>
/// <param name="sender">
/// The sender.
/// </param>
/// <param name="e">
/// The e.
/// </param>
private void SelectCsvFile(object sender, EventArgs e)
{
var dlg = new OpenFileDialog
{
Filter = @"CSV files (*.csv)|*.csv|XML files (*.xml)|*.xml",
CheckFileExists = true,
Title = @"Select csv/xml file to read",
Multiselect = false
};
dlg.ShowDialog();
if (dlg.FileName == string.Empty)
{
MessageBox.Show(
@"You didn't select any file !",
@"No file was selected",
MessageBoxButtons.OK,
MessageBoxIcon.Asterisk);
}
else
{
this.txtCSVFilePath.Text = dlg.FileName;
}
}
- 1. 如何使用打開文件對話框,選擇文件夾
- 2. 打開文件選擇對話框
- 3. 打開文件對話框錯誤選擇用的文件
- 4. 如何使用C++添加打開文件選擇對話框?
- 5. 打開「選擇文件」對話框,並使用JavaScript
- 6. 打開文件對話框並使用WPF控件和C#選擇文件
- 7. 如何使用打開文件對話框打開文件
- 8. 打開文件對話框
- 9. 打開文件對話框
- 10. 打開文件對話框
- 11. JSP限制文件打開對話框的目錄
- 12. 如何獲得選擇使用打開文件對話框控制
- 13. 保存文件時可以使用文件選擇對話框嗎?
- 14. 爲什麼我的文件選擇器不打開對話框
- 15. Chrome中的Flash文件選擇對話框限制
- 16. 對話框窗口選擇文件的數量限制?
- 17. 打開文件對話框並打開不同的文件
- 18. 「瀏覽」,「打開文件」,「選擇文件」對話框不起作用
- 19. C#:打開文件對話框的文件複製
- 20. 打開文件對話框,以文件路徑的變種
- 21. 使用打開文件對話框通過插件打開文件
- 22. 用jquery打開html文件對話框
- 23. 用javascript打開文件對話框
- 24. 如何使用通過文件對話框選擇的文件?
- 25. 我如何測試「選擇文件」對話框打開(Rails,Capybara)
- 26. 編輯ComboBox打開選擇文件對話框
- 27. 日期選擇,打開文件對話框相當於
- 28. 以html格式打開文件選擇對話框以獲得文件名,而不上傳文件
- 29. 打開文件對話框不開放
- 30. 使用javascript將打開的對話框限制爲某些文件
爲什麼你不驗證擴展名,然後再上傳? –