Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OpenFileDialog xml筛选器允许.htm快捷方式_C#_Winforms_Openfiledialog - Fatal编程技术网

C# OpenFileDialog xml筛选器允许.htm快捷方式

C# OpenFileDialog xml筛选器允许.htm快捷方式,c#,winforms,openfiledialog,C#,Winforms,Openfiledialog,我在winforms中创建了filedialog。 它被设置为只读.xml文件 ofd.DefaultExt="xml"; ofd.Filter="XML Files|*.xml"; 但当我运行它时,它允许上传.htm文件的快捷方式。然而,它根本不应该显示.htm文件。您这样做是正确的。使用过滤器属性可以将“打开”对话框中显示的文件限制为仅指定的类型。在这种情况下,用户在对话框中只能看到扩展名为.xml的文件 但是,如果他们知道自己在做什么,用户绕过过滤器并选择其他类型的文件是很简单的。例如,

我在winforms中创建了filedialog。 它被设置为只读.xml文件

ofd.DefaultExt="xml";
ofd.Filter="XML Files|*.xml";

但当我运行它时,它允许上传.htm文件的快捷方式。然而,它根本不应该显示.htm文件。

您这样做是正确的。使用
过滤器
属性可以将“打开”对话框中显示的文件限制为仅指定的类型。在这种情况下,用户在对话框中只能看到扩展名为
.xml
的文件

但是,如果他们知道自己在做什么,用户绕过过滤器并选择其他类型的文件是很简单的。例如,他们可以只键入完整的名称(如有必要,还可以键入路径),或者键入新的筛选器(例如,
*.
)并强制对话框显示所有此类文件

因此,您仍然需要逻辑来检查并确保所选文件满足您的要求。使用该方法从所选文件路径获取扩展名,并与预期路径进行顺序不区分大小写的比较

例如:

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.
        // ...
    }
}