2012-09-21 73 views
-1

這是一個WPF應用程序。文件路徑

我試圖加載一個XML文件,如下所示:

XmlDocument doc = new XmlDocument(); 
doc.Load("../../doc/test.xml"); 

但是當我發佈使用Clickonce,它將無法找到該文件。

我應該如何獲得當前位置,例如basedir

謝謝。

回答

0

嘗試用,

XmlDocument doc = new XmlDocument(); 
doc.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + @"\test.xml"); 

Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly()位置)的可執行文件位置的這種返回路徑。

0

嘗試:

AppDomain.CurrentDomain.BaseDirectory 

這將讓基本目錄

+0

BaseDirectory可以在運行時設置,因此不能保證是有效的。 –

0

你的意思是System.Reflection.Assembly.GetExecutingAssembly().Location

0

如果XML文件是某種形式的用戶可配置輸入,那麼該文件應該位於Windows常用應用程序數據文件夾中(請參閱Environment.SpecialFolder.CommonApplicationData)。因此,路徑不是相對的,而是由部署代碼「知道」的已知基礎構建的路徑。

我喜歡創造Environment.SpecialFolder.CommonApplicationData一個文件夾,我的公司和應用程序是這樣的:\\

也許我們需要更多的細節。我希望這有幫助。