1

我已经为我的 winform 创建了一个安装文件。当我运行此安装文件时,应用程序将安装到用户指定的位置。安装还将一些 xml 文件复制到该位置。用户运行应用程序后,它会立即从 xml 文件中读取一些设置。

我想知道的是,因为xml文件的位置是灵活的(用户指定的),我们怎么知道读取哪个位置呢?我们如何在 winform 编码中指定它应该从安装位置读取?

4

5 回答 5

2

您是否查看过 Application.ExecutablePath 以了解您的 exe 运行时所在的路径,所以这将是您安装的基本目录。

String startingdir = Path.GetDirectoryName(Application.ExecutablePath);
foreach(String Filename in Directory.GetFiles(startingdir,"*.xml")
{
// process
}
于 2012-09-26T09:18:40.577 回答
1

XML 文件是否复制到与可执行文件相同的位置?在这种情况下,您可以使用Application.ExecutablePathWinForms 应用程序获取可执行文件的位置,并从那里创建 XML 文件的路径。

于 2012-09-26T09:18:04.060 回答
1

我试过这个

reader = new XmlTextReader(Application.StartupPath + "\\MyFile.xml");

它工作正常!

于 2012-09-26T09:59:40.230 回答
0

我建议的方式是您在安装程序中创建一个步骤,用户可以在其中设置文件的位置。把它放在注册表中。并让您的应用程序从注册表中读取它

于 2012-09-26T09:20:50.710 回答
0

如果文件被复制到 exe 的工作文件夹,那么您可以使用相对路径(不需要绝对路径)来寻址它们。

编辑:这是一个例子

XmlDocument document = new XmlDocument();
document.Load("filename.xml");

这段代码将尝试读取包含您的 exe 文件的同一文件夹中的文件filename.xml 。

XmlDocument document = new XmlDocument();
document.Load("somefolder/filename.xml");

这个将尝试从位于包含您的 exe 的文件夹中的文件夹somefolder中读取文件filename.xml

于 2012-09-26T09:19:39.267 回答