C# WPF - 只允许某些文件扩展名

标签 c# .net wpf file openfiledialog

我有一个 OpenFileDialog,我只想允许 .txt 作为用户的有效文件。

我知道我可以像这样向 OpenFileDialog 添加一个 Filter:

var dialog = new OpenFileDialog();
dialog.DefaultExt = ".txt";
dialog.Filter = "Text Files (*.txt)|*.txt";
var result = dialog.ShowDialog();
// Do something with the result

但问题是,我仍然可以在 OpenFileDialog 中直接说类似 "test.jpg" 的内容,然后它会打开并上传此 .jpg 文件。 (显然它后来在某个地方出错了,但现在这无关紧要。)我只想知道如何限制用户只添加“.txt”文件,没有别的? (通过直接在 OpenFileDialog 中验证它,而不是稍后在某个地方进行验证。)

最佳答案

你不能只在 OpenFileDialog 中这样做,即使你可以这样做也是一个糟糕的限制。

使用 *.txt 示例,有多个文件扩展名是内部纯文本,*.bat 或所有编码文件扩展名 *.cs*.js 等...

你不应该限制用户可以放什么文件。

对于更复杂的文件类型,如果您的程序无法处理用户传递的文件,您应该显示错误而不阻止用户传递文件。

关于C# WPF - 只允许某些文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933964/

相关文章:

没有触发键绑定(bind)的 WPF MVVM 命令

c# - 无法绑定(bind)到 Windows 8 Store Apps 中的附加属性

c# - Windows 服务 : Managed Compatibility Mode does not support Edit and Continue

c# - 如何将 C# 原型(prototype)编写为 P/Invoke 一个以 char* 作为参数并返回其值的函数

c# - Azure Function v1 禁止访问云中的存储队列

.net - Oracle .net Provider CommandTimeout 不起作用

c# - 如何在特定 Controller 上实现 session 感知 WEB API?

.net - NET中写入文件时的填充编号

c# - 使用 MVVM 在 XAML 中禁用 TelerikGrid 中的行

c# - WPF路径动画