首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows XP和Vista+中%ALLUSERSPROFILE%的差异

Windows XP和Vista+中%ALLUSERSPROFILE%的差异
EN

Stack Overflow用户
提问于 2016-05-17 15:08:34
回答 1查看 15.3K关注 0票数 2

Windows中是否有环境变量指示用于存储所有用户共享的应用程序数据的文件夹?

在Windows Vista和更高版本中,这是%ALLUSERSPROFILE% (通常映射到C:/ProgramData)。然而,在Windows XP中,%ALLUSERSPROFILE%映射到C:\Documents and Settings\All Users,我仍然需要添加像\Program Data\这样的东西才能到达相同的位置。

EN

Stack Overflow用户

回答已采纳

发布于 2017-01-01 07:22:38

我不知道批处理文件有什么好的解决方案,但我可以解释一下它的历史。

在Windows2000/XP/2003上,%ALLUSERSPROFILE%与其名称完全相同,是所有用户/共享/公共配置文件目录的根目录。通常是"C:\Documents and Settings\All Users“。

Windows shell有一个名为CSIDL_COMMON_APPDATA的特殊文件夹常量,它通常解析为"C:\Documents and Settings\All Users\Application Data“,但不幸的是,在这些系统上没有为此路径设置环境变量。

在Windows Vista和更高版本中,documents、music和video文件夹从%ALLUSERSPROFILE%文件夹中移出,放在一个名为“公共”("c:\Users\ Public ")的新文件夹中,可以通过%PUBLIC%找到这些文件夹。CSIDL_COMMON_APPDATA还获得了一个名为%ProgramData%的环境变量,由于大多数其他文件夹都移到了%PUBLIC%,因此决定%ALLUSERSPROFILE%不需要Application data子文件夹,因此%ProgramData%%ALLUSERSPROFILE%相同。

如果您正在编写批处理文件:

我的建议是,如果%ProgramData%存在,就使用它,否则,使用%ALLUSERSPROFILE%\Application Data。我不知道Application Data文件夹在Windows的本地化版本中是否有不同的名称...

如果您正在编写C/C++应用程序:

使用SHGetFolderPath

如果您正在编写.NET应用程序:

使用Environment.SpecialFolder

票数 6
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37269376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档