У меня есть XmlTextReader для чтения серии XML-файлов для загрузки некоторой информации в мою программу.Как объединить два пути?
Однако в некоторых файлах XML у меня есть имя файла изображения, и я хочу загрузить это изображение.
Но проблема в том, что файл XML не имеет полного пути к изображению.
<Image id="ImageId" File="Image.bmp" />
<!-- full path is not available. Image is behind XML-->
Это означает, что изображение существует там, где находится XML-файл.
По какой-то причине единственным способом получить путь к файлу XML является получение пути XmlTextReader, считывающего текущий файл XML.
Я сделал некоторые исследования, и я узнал, что вы можете получить путь XML из XmlTextReader, как показано ниже:
string path = reader.BaseURI; // this will get the path of reading XML
// reader is XmlTextReader
Как я могу объединить path
с путем на изображении в?
Я попытался следующим образом:
string FullImagePath = Path.Combine(reader.BaseURI, imagePath);
Эти значения переменных:
reader.BaseURI
является"file:///D:/.../currentXml.xml"
imagePath
является"Image.bmp"
.- И наконец,
FullImagePath
, после присвоения результатаPath.Combine
являетсяfile:///D:/.../currentXml.xml\\Image.bmp
, что не является тем, что я ожидаю.
Ожидаемый путь изображения: D:/.../Image.bmp
, в том же каталоге, как currentXml.xml
.
Как я могу получить путь к файлу изображения?
спасибо за объяснение. 'GetDirectoryName' выполнил эту работу, но для избавления от файла: // 'Я использовал' Substring (6) '. не довольно, но просто, –
Этот код не только« не очень », он _will_ также прерывается в один прекрасный день. – CodeCaster
спасибо. однолинейное решение.' new Uri (Path.Combine (Path.GetDirectoryName (reader.BaseURI), ImagePath)). LocalPath'. Теперь он не будет прерывать какой-либо день! –