在XmlReader .NET 4.0中加载失败的目录文件

问题描述 投票:0回答:1

此文件名的字符为(0xE700)。

当我在XmlReader中读取时,由于文件名加载更改字符为%EE%9C%80,所以我无法读取它

XmlReader reader = XmlReader.Create(fileName, settings);

为什么(0xE700)=>%EE%9C%80!

c# xml .net-4.0 xmlreader
1个回答
0
投票
XmlReader Create(string inputUri, XmlReaderSettings settings, XmlParserContext inputContext);

0xE700是Uri中不能使用的特殊字符,转义为%EE%9C%80!

但是您可以使用例如FileStream来更改代码并读取文件内容

var fileName = string.Format("{0}test.xml", char.ConvertFromUtf32(0xE700)); File.WriteAllText(fileName, "<root><node /></root>"); using (var fileStream = new FileStream(fileName, FileMode.Open)) { using (var reader = XmlReader.Create(fileStream)) reader.ReadStartElement(); }

[new FileStream(fileName, FileMode.Open)将按名称读取文件,并且不会对文件名进行编码(就像XmlReader.Create一样。)。

© www.soinside.com 2019 - 2024. All rights reserved.