Aba*_*Aba 3 c++ windows permissions file
我编写了这个需要检查INI文件("preference.ini")的C++应用程序,并最终修改它(例如,如果用户不想再看到介绍表单).我在WinXP中创建它,它在我编译它的系统上工作正常(在很多地方,包括"Program Files").
问题:
我使用'getcwd'来定义运行时的路径,并且我验证它正确,即使在"Program Files(x86)"下也是如此:
char currentPath[MAXPATH];
getcwd(currentPath, MAXPATH);
std::string licensePath(currentPath);
licensePath.append("\\dat\\preference.ini");'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?在此先感谢您的帮助.
答案是@Kirill已经说过 - 除非你拥有高于正常的权限(以管理员身份运行),否则Win7不会让你将数据写入程序文件.在这种情况下,它可能会重定向您的文件写入,以便它们仍然可以工作,但数据本身不存储在Progam文件中.
添加到他的答案:一般情况下(除非您想以管理员身份运行您的应用程序),您不应将任何程序数据写入Program Files文件夹.
应用程序设置应存储在其中一个AppData文件夹中.您可以通过转到开始菜单搜索框(Vista/Win7)并输入来手动访问用户的appdata %appdata%.
要在代码中找到此位置,请将SHGetFolderPath与CSIDL_APPDATA(当前用户)或CSIDL_COMMON_APPDATA(所有用户)一起使用.
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |