【问题标题】:Read the xml files from the installed path从安装路径读取xml文件
【发布时间】:2012-09-26 09:15:53
【问题描述】:

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

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

【问题讨论】:

    标签: c#


    【解决方案1】:

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

    String startingdir = Path.GetDirectoryName(Application.ExecutablePath);
    foreach(String Filename in Directory.GetFiles(startingdir,"*.xml")
    {
    // process
    }
    

    【讨论】:

    • 朋友有什么例子吗?
    • Applicaiton.ExecutablePath 以字符串形式返回目录名称。因此您现在可以搜索 xml 文件,或者您可能知道要查找哪些文件。
    【解决方案2】:

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

    【讨论】:

    • 是的,我安装后的exe文件也是这样。
    • 您可以通过相对路径读取它们。如果xml-files在同一个目录下,那么你可以通过文件名来读取文件。
    • 朋友有例子吗?
    • 我试过“reader = new XmlTextReader(Application.ExecutablePath);”,但这样做不会只读取exe文件吗?我们如何编写代码来读取xml文件?
    【解决方案3】:

    我试过了

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

    而且效果很好!!

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        编辑:这是一个例子

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

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

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

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

        【讨论】:

        • 朋友有什么例子吗?
        • 我试过“reader = new XmlTextReader(Application.ExecutablePath);”,但这样做不会只读取exe文件吗?我们如何编写读取xml文件的编码?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-12
        • 2015-11-17
        • 1970-01-01
        • 2021-06-25
        • 1970-01-01
        相关资源
        最近更新 更多