Рассмотрим следующий фрагмент кода
private void ProcessFile(string fullPath) {
XmlTextReader rdr = new XmlTextReader("file:\\\\" + fullPath);
while (rdr.Read()) {
//Do something
}
return;
}
Теперь, это нормально работает, когда передается путь вроде:
"C: \ Work Files \ Technical Information \ Dummy.xml"
Но выдает ошибку при прохождении
"C: \ Work Files \ #Техническая информация \ Dummy.xml"
Обратите внимание, что все указанные папки и файлы существуют и что хеш-символ является допустимым символом для путей. Детали ошибки:
System.IO.DirectoryNotFoundException: Не удалось найти часть пути 'C: \ Work Files \'.
в System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath)
at System.IO.FileStream.Init (Строковый путь, режим FileMode, доступ FileAccess, права Int32, логическое использование useRights, общий доступ к FileShare, опции3232 bufferSize, опции FileOptions, SECURITY_ATTRIBUTES secAttrs, строка msgPath, логический bFromProxy)
в System.IO.FileStream..ctor (путь строки, режим FileMode, доступ к FileAccess, общий доступ к FileShare, размер буфера Int32)
at System.Xml.XmlDownloadManager.GetStream (Uri uri, учетные данные ICredentials)
at System.Xml.XmlUrlResolver.GetEntity (Uri absoluteUri, строковая роль, тип объекта ObjectToReturn)
at System.Xml.XmlTextReaderImpl.OpenUrlDelegate (Object xmlResolver)
в System.Threading.CompressedStack.runTryCode (Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (код TryCode, код возврата CleanupCode, объект userData объекта)
в System.Threading.CompressedStack.Run (CompressedStackressedStack, обратный вызов ContextCallback, состояние объекта)
в System.Xml.XmlTextReaderImpl.OpenUrl ()
в System.Xml.XmlTextReaderImpl.Read ()
в System.Xml.XmlTextReader.Read ()
Кто-нибудь знает, что происходит?