【发布时间】:2016-08-17 22:58:58
【问题描述】:
类似问题:How to avoid of file name validation in SaveFileDialog C#
我正在编写一个应用程序,该应用程序可以选择支持打开可执行文件并使用给定参数运行它们,并且我正在尝试使用OpenFileDialog 作为一种用户友好的方式来实现这一点。在禁用AddExtension、ValidateNames、CheckFileExists 和CheckPathExists 后,我可以将参数传递给可执行文件,并且应用程序使用预期的参数运行它们。
但是,当我尝试传递包含“无效”文件名字符(例如“/”)的参数时,我会停止并收到以下示例消息:
并且不允许继续,即使 ValidateNames 设置为 false。
这是关于对话框的代码:
OpenFileDialog dialog = new OpenFileDialog();
dialog.AddExtension = false;
dialog.CheckFileExists = false;
dialog.CheckPathExists = false;
dialog.ValidateNames = false;
if (dialog.ShowDialog() == DialogResult.OK) {
//Parse text manually here (parsing is fully handled on the developer side)
}
有没有办法解决这个问题并完全禁用输入验证,还是我必须编写自定义文件对话框实现?
【问题讨论】:
-
哦,我必须结束我的问题吗?
-
对我来说听起来像是你试图滥用而不使用 OpenFileDialog,这意味着打开文件,而不是启动程序并获取参数,为什么不让它这样做然后弹出一个第二个控件,带有参数的字符串输入?
-
不,只是提及它,以便它显示在“已链接”部分供未来访问者查找。
-
我看到here
FOS_NOVALIDATE标志说“不要检查会阻止应用程序打开所选文件的情况,例如共享违规或访问被拒绝错误。” -- 这与非法字符无关。我怀疑你在这里运气不好,可能不得不编写你自己的对话框 - 或者只使用一个单独的参数作为上面建议的参数。
标签: c# openfiledialog