我已經爲我的winform創建了一個安裝文件。當我運行這個安裝文件時,應用程序將被安裝到用戶指定的位置。安裝程序還會將一些xml文件複製到該位置。用戶運行應用程序後,它將從xml文件中讀取一些設置。從安裝路徑中讀取xml文件
我想知道的是,因爲xml文件的位置是靈活的(用戶指定的),我們如何知道要讀取哪個位置?我們如何在winform編碼中指定它應該從安裝位置讀取?
我已經爲我的winform創建了一個安裝文件。當我運行這個安裝文件時,應用程序將被安裝到用戶指定的位置。安裝程序還會將一些xml文件複製到該位置。用戶運行應用程序後,它將從xml文件中讀取一些設置。從安裝路徑中讀取xml文件
我想知道的是,因爲xml文件的位置是靈活的(用戶指定的),我們如何知道要讀取哪個位置?我們如何在winform編碼中指定它應該從安裝位置讀取?
XML文件是否被複制到與您的可執行文件相同的位置?在這種情況下,您可以使用WinForms應用程序中的Application.ExecutablePath
來獲取可執行文件的位置,然後從那裏創建XML文件的路徑。
你是否看過Application.ExecutablePath中exe文件運行的路徑,因此這將成爲安裝的基礎目錄。
String startingdir = Path.GetDirectoryName(Application.ExecutablePath);
foreach(String Filename in Directory.GetFiles(startingdir,"*.xml")
{
// process
}
如果將文件複製到你的exe文件的工作文件夾,然後就可以用相對路徑(無需絕對路徑)解決這些問題。
編輯:下面是一個例子
XmlDocument document = new XmlDocument();
document.Load("filename.xml");
這段代碼會試圖讀取該文件filename.xml中這是包含您的exe文件相同的文件夾。
XmlDocument document = new XmlDocument();
document.Load("somefolder/filename.xml");
而這一次將嘗試從位於包含您的exe
我建議的方法是創建一個文件夾中的文件夾somefolder讀取文件filename.xml中步驟在您的安裝程序中,用戶可以設置文件的位置。把它放在註冊表中。並得到您的應用程序從註冊表
讀它,我已經試過這
reader = new XmlTextReader(Application.StartupPath + "\\MyFile.xml");
它做工精細!
是的,安裝後它與我的exe文件一樣。 – Coolguy
您可以通過相對路徑閱讀它們。如果xml文件在同一個目錄下,那麼你可以通過它們的名字來讀取這些文件。 – Tomtom
有沒有我的朋友的例子? – Coolguy