2014-10-17 130 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); 
}