【问题标题】:Universal location to write a file to, under any version of Windows in any language在任何语言的任何版本的 Windows 下写入文件的通用位置
【发布时间】:2011-10-19 15:02:49
【问题描述】:

必须在 Windows XP 下的多台计算机上部署 VBA 应用程序,我需要在通用位置自动创建特定文件,独立于硬盘驱动器、目录结构甚至操作系统语言:C 驱动器的根目录,即 C:\

这工作得很好......直到这些计算机开始迁移到 Vista 或 Windows 7,我发现不容易在 C 驱动器上写入。 什么是可以在任何版本的 Windows 下以任何语言为所有用户工作的替代通用可写位置?

【问题讨论】:

    标签: windows universal


    【解决方案1】:

    调用一个 Windows API 来返回相应机器上的SpecialFolder 的路径并使用它——例如非常适合

    • CSIDL_COMMON_DOCUMENTS(非特定用户)
    • CSIDL_COMMON_APPDATA(非用户特定)
    • CSIDL_APPDATA(特定于用户/应用程序)
    • CSIDL_MY_DOCUMENTS(特定于用户)

    Windows API 负责您描述的所有内容 - 上面的位置是可写的,适用于所有 Windows 版本,并且不依赖于语言。

    有关 VBA 源代码和示例,请参阅http://www.cpearson.com/excel/SpecialFolders.aspx

    有关 MSDN 参考资料,请参阅:

    【讨论】:

    • 感谢 Yahia 的及时和自信的回答。我希望有一个更简单的解决方案,特别是在我查看了 VBA 代码之后,但我现在必须接受它不会像 C:\ 那样简单 - 顺便说一下,我的研究让我找到了一个叫做 appdata 的东西。有人吗?
    • appdata 只是位置的名称,并且已经是我上面答案的一部分...请不要忘记投票/标记为已接受任何有帮助的答案...跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    相关资源
    最近更新 更多