2014-10-17 131 views
0

我想从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行时它卡住了。我没有得到任何结果。

回答

1

尝试的路径结合起来 - 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); 
} 
0

你可能追加currentDirectory所要的文件结束。尝试:

doc.Load(Environment.CurrentDirectory + @"\Files\Class.xml"); 
1

首先,你需要确保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); 
}