Tôi nhận được ứng dụng biểu mẫu C# windows này khi tôi tải một tệp XML hoặc tệp CSV cho một số thao tác tác vụ. Tôi có một nút Duyệt. Khi tôi nhấp vào nút Duyệt qua, hộp thoại Mở Tệp Thoại xuất hiện và tôi có thể điều hướng đến một vị trí trên ổ đĩa của tôi và chọn tệp rồi tải lên bằng cách sử dụng nút Tải lên. Nếu tôi tải tệp JPG hoặc tệp ZIP hoặc bất kỳ tệp nào có định dạng ngoại trừ CSV hoặc XML, ứng dụng của tôi sẽ gặp sự cố. Có cách nào hạn chế hộp thoại Open File Dialog để chỉ mở các tệp CSV hoặc XMl trong C# không?Giới hạn các tập tin có thể được chọn bằng hộp thoại Open FIle
Trả lời
sử dụng
openFileDialog.Filter = "CSV files (*.csv)|*.csv|XML files (*.xml)|*.xml";
cách này chỉ file csv hoặc file xml được hiển thị. nhưng người dùng cũng có thể chọn các loại tệp khác nếu họ nhập tên đầy đủ - vì vậy hãy kiểm tra tên tệp đã được chọn và sửa mã của bạn cho phù hợp.
super one dude :)) – user1501034
Bạn cũng có thể kết hợp các bộ lọc để người dùng có thể xem cả tệp csv và xml, như sau: openFileDialog.Filter = "Data files | * .csv; *. Xml"; – sventevit
Bạn có thể sử dụng thuộc tính Filter
để cho phép người dùng chọn một loại tệp nhất định.
Tuy nhiên! Đây không phải là một sự đảm bảo. Người dùng vẫn có thể nhập '(dấu sao). (Dấu sao)' vào hộp tên tệp và hiển thị tất cả các tệp. Vì vậy, bạn nên kiểm tra (các) tệp kết quả trong mã của mình.
Bạn có thể thực hiện việc này bằng phương pháp Path.GetExtension()
.
Bạn có thể áp dụng bộ lọc trong hộp thoại Mở tệp chỉ hiển thị tệp .xml và csv như đã đề cập ở trên. Với path.getextension http://msdn.microsoft.com/en-us/library/system.io.path.getextension.aspx Bạn có thể kiểm tra xem người dùng có thực sự đã chọn tệp có phần mở rộng phù hợp hay không. Nếu một phần mở rộng sai được chọn, bạn có thể nhắc chọn một tập tin khác.
Tôi thực sự khuyên bạn nên kiểm tra phần mở rộng tệp trước khi tải lên. Chỉ cần kiểm tra phần mở rộng sau khi người dùng đã chọn tập tin. Nếu các tệp sai được chọn, chỉ cần không tiếp tục quá trình tải lên/xử lý ...
Đây là ví dụ hoàn chỉnh.
/// <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. hộp thoại Open File có thể được sử dụng để chọn một Thư mục không?
- 2. Open File Dialog Box
- 3. Selenium WebDriver và trình duyệt chọn hộp thoại tập tin
- 4. Mở hộp thoại tập tin trên <a> thẻ
- 5. Làm thế nào để hiển thị hộp thoại "Open File" trong Access 2007 VBA?
- 6. Cách thêm hộp thoại chọn tệp bằng QT Createor?
- 7. Lưu hộp thoại tập tin trong MVC
- 8. Tại sao C# giới hạn tập các loại có thể được khai báo là const?
- 9. JNLP FileSaveService mở hộp thoại mở tập tin
- 10. Hộp thoại trình duyệt thư mục như hộp thoại mở tập tin
- 11. lọc loại tập tin với các control file upload
- 12. Cách lấy tiêu điểm hộp thoại tập tin Tkinter
- 13. giới hạn lựa chọn tải tệp lên các loại cụ thể
- 14. Nhận hộp giới hạn của thành phố
- 15. Số lượng hộp kiểm giới hạn
- 16. Fullcalendar - giới hạn có thể chọn cho một ngày
- 17. (Làm cách nào) Tôi có thể sử dụng FutureWindows với các hộp thoại mở tập tin chuẩn không?
- 18. Giới hạn các cột được thể hiện trong ActiveRecord
- 19. HTML <input type = 'file'> Lựa chọn tập tin Event
- 20. Thoát khỏi các giới hạn của một hộp chứa div
- 21. Giới hạn hộp kiểm được kiểm tra ở dạng
- 22. ctags không thể mở tùy chọn tập tin ".ctags"
- 23. Lưu hộp thoại để tải tập tin, Lưu tập tin từ máy chủ ASP.NET sang máy khách
- 24. Hộp giới hạn cho đa giác
- 25. Hộp giới hạn trong D3.js
- 26. Tôi có thể định vị hộp tin nhắn (Biểu mẫu) của net hoặc các hộp thoại chung không?
- 27. "Trên hộp thoại tập tin hủy bỏ" sự kiện trong JavaScript
- 28. Làm cách nào để giới hạn các ngôn ngữ hiển thị trong hộp thoại xuất bản Sitecore?
- 29. Hộp giới hạn 2D của một ngành?
- 30. Chọn một tệp bằng Python với Hộp thoại đơn giản
tại sao bạn không xác thực tiện ích trước khi tải lên? –