Мне нужно использовать OpenFileDialog
для ввода URI или локального пути. Проблема в том, что схема URL-адреса не является окном, о котором известно (или должно знать, потому что это взлом для тестирования).Как сделать OpenFileDialog приемлемым URI
Я могу отключить все проверки и до тех пор, пока я не буду кормить его недействительными символами, которые он возвращает, но потом он будет радостно есть что-нибудь еще, и это не то, что я хочу.
Я хочу, чтобы он принимал действительные локальные пути и правильно отформатировал 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.
»
Почему он все еще пытается проверить вещи ?
Сколько вы хотите, чтобы взломать? OpenFileDialog явно не был разработан для этого сценария, и он не был особенно расширяемым. Любое решение, вероятно, приведет к установке ValidateNames в false, а затем переопределит HookProc и воссоздает только те части процесса проверки, которые вы хотите. Возможно, возможно, но не очень. –