【发布时间】:2014-11-14 15:59:02
【问题描述】:
我有一个OpenFileDialog,我只想允许.txt 作为用户的有效文件。
我知道我可以像这样将Filter 添加到OpenFileDialog:
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 中直接验证它,而不是稍后在某个地方进行验证。)
【问题讨论】:
-
我不确定是否有办法防止用户通过键入来更改扩展名,但您可以在他们选择文件后立即检查扩展名并不合法就报错。
-
我认为您的选择是在用户选择文件后检查扩展名,或者编写自己的文件对话框。
-
您是否希望用户选择除 .txt 之外的所有内容???
-
把问题说清楚,我可以更好地帮助你
-
Filter功能仅用于限制文件列表,以便用户可以轻松选择正确类型的文件。您无法阻止他伪造文件扩展名并打开它除非您有一些库可以帮助您检测几乎所有常见的文件结构(通过读取内容而不是仅仅基于扩展名)。
标签: c# .net wpf file openfiledialog