1

我需要用来OpenFileDialog输入 URI 或本地路径。问题是 URL 的架构不是 windows 知道的(或者应该知道,因为它是用于测试的 hack)。

我可以关闭所有验证,只要我不给它提供它返回的无效字符,但它会很乐意吃其他任何东西,这也不是我想要的。

我想要的是它接受有效的本地路径和正确格式化的 URI,而不验证 Uri 的架构组件,即http,ftp或开头的任何内容。


我目前的代码是:

var dialog = new System.Windows.Forms.OpenFileDialog();

dialog.CheckFileExists = false;
dialog.CheckPathExists = false;
dialog.ValidateNames = false;

var result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
    return dialog.FileName;

如果我输入对话框foo://127.0.0.1/foo,它将运行文件到最后一行并以“ The given path's format is not supported.”崩溃

为什么它仍在尝试验证内容?

4

1 回答 1

0

我假设您在谈论 C#/.NET,因为您将其称为“OpenFileDialog”。

我假设您需要做的是对对话框本身进行子类化(毕竟,它是一个 Win32 对话框)。不幸的是,我不知道如何去做,但希望它能把你推向正确的方向。

于 2009-05-21T23:59:35.447 回答