我为winform创建了一个安装文件。当我运行此安装文件时,应用程序将安装到用户指定的位置。安装还会将一些xml文件复制到该位置。在用户运行应用程序之后,它将从xml文件中读取一些设置。
我想知道的是,因为xml文件的位置是灵活的(用户指定),我们如何知道要读取哪个位置?我们如何在winform编码中指定它应该从安装位置读取?
答案 0 :(得分:2)
您是否看过Application.ExecutablePath以了解运行时exe的路径,因此这将是您安装的基本目录。
String startingdir = Path.GetDirectoryName(Application.ExecutablePath);
foreach(String Filename in Directory.GetFiles(startingdir,"*.xml")
{
// process
}
答案 1 :(得分:1)
XML文件是否已复制到与可执行文件相同的位置?在这种情况下,您可以使用WinForms应用程序中的Application.ExecutablePath
来获取可执行文件的位置,并从那里创建XML文件的路径。
答案 2 :(得分:1)
我试过这个
reader = new XmlTextReader(Application.StartupPath + "\\MyFile.xml");
它工作正常!!
答案 3 :(得分:0)
如果将文件复制到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
答案 4 :(得分:0)
我建议的方法是在安装程序中创建一个步骤,用户可以在其中设置文件的位置。把它放在注册表中。并让您的应用程序从注册表中读取它