[英]OpenFileDialog xml Filter allowing .htm shortcuts
我在winforms中提交了文件。 它設置為只讀.xml文件。
ofd.DefaultExt="xml";
ofd.Filter="XML Files|*.xml";
但是當我運行它時允許上傳.htm文件快捷方式。 而它根本不應該顯示.htm文件。
你正確地做到了。 使用Filter
屬性可以將打開的對話框中顯示的文件限制為僅指定的類型。 在這種情況下,用戶將在對話框中看到的唯一文件是擴展名為.xml
。
但是,如果他們知道他們正在做什么,那么用戶繞過過濾器並選擇其他類型的文件是微不足道的。 例如,他們只需鍵入完整的名稱(和路徑,如果需要),或者他們可以鍵入新的過濾器(例如*.*
)並強制對話框向他們顯示所有這些文件。
因此,您仍需要邏輯來檢查並確保所選文件符合您的要求。 使用System.IO.Path.GetExtension
方法從所選文件路徑獲取擴展,並對預期路徑進行序號不區分大小寫的比較。
例:
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XML Files (*.xml)|*.xml";
ofd.FilterIndex = 0;
ofd.DefaultExt = "xml";
if (ofd.ShowDialog() == DialogResult.OK)
{
if (!String.Equals(Path.GetExtension(ofd.FileName),
".xml",
StringComparison.OrdinalIgnoreCase))
{
// Invalid file type selected; display an error.
MessageBox.Show("The type of the selected file is not supported by this application. You must select an XML file.",
"Invalid File Type",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
// Optionally, force the user to select another file.
// ...
}
else
{
// The selected file is good; do something with it.
// ...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.