【问题标题】:How to read remote INI files如何读取远程 INI 文件
【发布时间】:2011-07-13 22:14:19
【问题描述】:

我通过 GetPrivateProfileString API 读取 INI 文件字符串。但是,本地 windows 目录中的 INI 可以这样读取。 如何在远程计算机中读取和编辑 INI 文件。

【问题讨论】:

    标签: c windows winapi filesystems ini


    【解决方案1】:

    我最近才发现您无法访问 UNC 路径上的 INI 文件。

    我的解决方案是将驱动器号映射到该位置,并且成功了。

    所以,而不是 \myserver\myinipath\myinifile.ini

    我将 X 映射到那个位置...........

    net 使用 x:\myserver\myinipath

    如果您需要登录到该 UNC 路径/服务器,那么

    net use x:\myserver\myinipath /user:loginname 密码

    我现在使用 x:\myinifile.ini

    【讨论】:

      【解决方案2】:

      您不应期望能够修改存储在远程计算机上的 INI 文件。无论您的问题是什么,这都不是解决方案。

      【讨论】:

        【解决方案3】:

        我猜您是在问如何读取远程文件(这将归结为)。如果可用,最简单的选择可能是使用远程 UNC 文件路径读取文件,例如\\SomeMachine\SomeShare\TheFile.ini。如果你不能这样做,你需要想办法将文件传输到本地机器,无论是带外还是按需使用命名管道、TCP 套接字或类似的东西。

        为什么还要使用 INI 文件?在 16 位 Windows 时代之后,它们基本上已被弃用。我强烈推荐一种不同的方法(例如注册表、XML 配置文件……)。

        【讨论】:

        • GetPrivateProfile 字符串会自动解析 INI 并在我传递设置名称时获取字符串。它只接受文件名而不是路径,而是在 windows 目录中搜索该文件。如果它采用完整路径,我会给出远程 UNC 路径。
        • 事实证明,注册表并不是每个人都认为的灵丹妙药。将严格的私有配置设置转储到一个巨大的公共数据库中的应用程序不一定是有史以来最好的想法。当然,XML 文件可能是比 INI 文件更好的解决方案,但不要因为 INI 对您来说听起来像是“旧技术”就断然拒绝使用它们。
        • @Beetles:是的,它可以做到这一点。但您也可以在lpFileName 参数中指定路径名。 Check the documentation 了解更多详情。
        • @Cody Inifiles 在本地化场景中可能仍然有用,但私有配置文件字符串 API 在很久以前就已被弃用。
        • @Cody 是的,我必须在其他域中编辑 INI,所以我使用 logonuser api 来访问文件。让我试试。感谢您的帮助。
        猜你喜欢
        • 2020-07-06
        • 2015-10-01
        • 1970-01-01
        • 2013-04-18
        • 2015-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多