Почему IsWellFormedOriginalString завершается ошибкой в ​​файле Uris? - PullRequest
3 голосов
/ 17 марта 2010

У меня есть такой код:

string uriString = @"C:\Temp\test.html";
Uri uri = new Uri(uriString);
bool goodCond = uri.IsWellFormedOriginalString();

Но goodCond - это ложь! Что я делаю не так?


Edit: Спасибо Йоханнес и Catdirt. Я сфокусирую свой вопрос: Как мне преобразовать действительный путь к файлу в действительный файл Uri (используя uri.IsWellFormedOriginalString как указание на действительность Uri)? Взгляните на это:

        DirectoryInfo di = new DirectoryInfo(@"c:\temp");
        FileInfo [] fis = di.GetFiles("test.html");
        FileInfo fi = fis[0];
        string uriString = fi.FullName;
        Uri uri = new Uri(uriString);
        bool goodCond = uri.IsWellFormedOriginalString()

Obviosly fi.fullName - это правильно сформированный путь, но все же хороший Конд - это плохо!

Ответы [ 2 ]

9 голосов
/ 17 марта 2010

Ваш URI неправильно сформирован.

Правильно подобранный пример: file:///C:/Temp/test.html.

PS Home:> (new-object Uri 'file:///C:/Temp/test.html').IsWellFormedOriginalString()
True
PS Home:> (new-object Uri 'file:///C:\Temp\test.html').IsWellFormedOriginalString()
False
PS Home:> (new-object Uri 'C:\Temp\test.html').IsWellFormedOriginalString()
False
PS Home:> (new-object Uri 'C:/Temp/test.html').IsWellFormedOriginalString()
False
1 голос
/ 17 марта 2010

Это неверно, потому что он не очень хорошо сформирован.

http://msdn.microsoft.com/en-us/library/system.uri.iswellformedoriginalstring.aspx

...