XmlDocument.Load卡住了吗?
问题描述:
我想从Windows窗体应用程序中的路径加载xml文件。XmlDocument.Load卡住了吗?
public static ClassLayout GetClassLayout()
{
XmlDocument doc = new XmlDocument();
doc.Load(Environment.CurrentDirectory + @"Files\Class.xml");
return Serializer.XmlDeserialize<ClassLayout>(doc.OuterXml);
}
但是在达到doc.Load行时它卡住了。我没有得到任何结果。
答
尝试的路径结合起来 - environment.currentdirectory不以“\”
public static ClassLayout GetClassLayout()
{
XmlDocument doc = new XmlDocument();
doc.Load(System.IO.Path.Combine(Environment.CurrentDirectory, @"Files\Class.xml"));
return Serializer.XmlDeserialize<ClassLayout>(doc.OuterXml);
}
答
你可能追加currentDirectory所要的文件结束。尝试:
doc.Load(Environment.CurrentDirectory + @"\Files\Class.xml");
答
首先,你需要确保Environment.CurrentDirectory
是你认为它是。如果这是正确的,问题是返回的值很可能在其末尾没有\
,所以它可能在寻找像C:\WindowsFiles\Class.xml
之类的东西。
创建目录和文件路径的最佳方法是使用Path.Combine
,将处理后的斜线:
public static ClassLayout GetClassLayout()
{
XmlDocument doc = new XmlDocument();
doc.Load(Path.Combine(Environment.CurrentDirectory, @"Files\Class.xml"));
return Serializer.XmlDeserialize<ClassLayout>(doc.OuterXml);
}