Как заставить OpenFileDialog принимать "допустимые" URI - PullRequest
1 голос
/ 22 мая 2009

Мне нужно использовать OpenFileDialog для ввода URI или локального пути. Проблема в том, что схема URL не является чем-то, о чем Windows знает (или должен знать, потому что это хак для тестирования).

Я могу отключить всю проверку и до тех пор, пока я не передаю ему недействительные символы, он возвращает, но потом он с удовольствием съест все остальное, и это тоже не то, что я хочу.

Я хочу, чтобы он принимал действительные локальные пути и правильно отформатированные 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."

Почему он все еще пытается проверить вещи?

1 Ответ

0 голосов
/ 22 мая 2009

Я предполагаю, что вы говорите о C # /. NET, поскольку вы называете его "OpenFileDialog".

Я предполагаю, что вам нужно будет создать подкласс самого диалога (это, в конце концов, диалог Win32). К сожалению, я не знаю, как это сделать, но, надеюсь, это подтолкнет вас в правильном направлении.

...