在任何语言版本的Windows下写入文件的通用位置

在任何语言版本的Windows下写入文件的通用位置,windows,universal,Windows,Universal,由于必须在Windows XP下的多台计算机上部署VBA应用程序,我需要在通用位置自动创建一个特定文件,该文件与硬盘驱动器、目录结构甚至操作系统语言无关:C驱动器的根目录,即C:\ 这个很好用。。。直到这些计算机开始迁移到Vista或Windows 7,我发现它们不容易在C驱动器上写入。 什么样的通用可写位置可以在任何版本的Windows下以任何语言为所有用户工作?调用Windows API,返回相应计算机上的专用文件夹的路径,并使用该路径-例如,非常适合的 CSIDL\u通用文档(非用户专用

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

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

调用Windows API,返回相应计算机上的
专用文件夹的路径,并使用该路径-例如,非常适合的

  • CSIDL\u通用文档
    (非用户专用)
  • CSIDL\u COMMON\u APPDATA
    (非用户特定)
  • CSIDL\u APPDATA
    (特定于用户/应用程序)
  • CSIDL\u我的文档
    (特定于用户)
Windows API负责您描述的所有内容—上面的位置是可写的,适用于所有Windows版本,不依赖于语言

有关VBA源代码和示例,请参见

有关MSDN参考,请参阅:


感谢Yahia的及时和果断的回答。我希望有一个更简单的解决方案,特别是在我看过VBA代码之后,但我现在必须承认它不会像C:\-顺便说一下,我的研究让我找到了一种叫做appdata的东西。有人吗?
appdata
只是位置的名称,已经是我上面答案的一部分了。。。请不要忘记对任何有帮助的答案进行投票/标记为已接受。。。