存储程序数据文件的正确位置是什么,这些文件对于每个用户都是相同的但是必须可以为程序写入? MS Windows XP上的等效位置是什么?我已经读过普通用户安装后C:\ ProgramData不可写。真的吗?如何使用Platform SDK以编程方式检索该目录?

有帮助吗?

解决方案

SHIGetFolderPath(),CSIDL为CSIDL_COMMON_APPDATA。

阅读更多信息,请访问 http://msdn.microsoft的.com / EN-US /库/ bb762181(VS.85)的.aspx

如果您需要批处理文件中的路径,还可以使用%ALLUSERSPROFILE%环境变量。

其他提示

这里有不同选项的精彩摘要: http://blogs.msdn.com/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead -of-程序files.aspx

  

我应该在哪里编写程序数据   而不是程序文件?

     

常见的应用程序代码更新是   这个:“我的应用程序曾经写过   文件到程序文件。感觉就像   把它当作任何一个好地方   其他。它有我的应用程序的名称   它已经,因为我的用户是   管理员,它运作良好。但现在我明白了   这可能不是一个伟大的地方   按照我曾经想过的那样坚持下去   因为有了UAC甚至管理员   使用标准的类似用户的权限运行   大多数时候。那么,我应该在哪里   把我的文件改为?“

您可以使用:

CString strPath;
::SHGetSpecialFolderPath(NULL, strPath.GetBuffer(1024), CSIDL_COMMON_APPDATA, FALSE);

请参阅 Raymond Chen关于此特定问题的文章

总之,你要求的是一个安全漏洞

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top