簡體   English   中英

OpenFileDialog xml過濾器允許.htm快捷方式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM