c - 使用 fopen_s 将文件保存在 "Program Files/myApplication"文件夹中

标签 c windows winapi

我的应用程序将其设置保存在其可执行文件夹下,该文件夹恰好是它在 Windows 下的安装位置 (C:\ProgramFiles)。我遇到的问题是我使用 fopen_s 并将文件打开为二进制文件,但是当我的应用程序保存设置时 Windows 不允许它。我在想它必须做一些有权限的事情,但我不确定去哪里找。也许我应该将目录更改为将设置保存到 users/Documents 之类的目录。

对此有什么想法,为什么它不起作用?为什么不允许 fopen_s 保存安装我的应用程序的文件?

最佳答案

在普通用户权限下运行的应用程序对 %ProgramFiles% 目录具有只读访问权限。这是设计使然。如果可以将文件保存到此目录,那么共享同一台 PC(使用不同帐户)的多个用户将覆盖彼此的设置文件。

调整您的代码以将其设置保存到 %LOCALAPPDATA% 目录。使用 SHGetKnownFolderPath API 获取此目录路径。

关于c - 使用 fopen_s 将文件保存在 "Program Files/myApplication"文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20877393/

相关文章:

c - C中setjmp和longjmp的实际使用

c: 未知类型名称

mysql - mysql 客户端 ".my.cnf"在 XAMPP for Windows 中的位置是什么?

windows - 通过批处理文件连续执行多个.exe文件

windows - 即使启用 Windows 长路径,ALINK 错误 1065

c++ - 将头文件编译成 DLL

创建文件 - dwDesiredAccess

c - 从服务器向客户端发送 float

c - DestroyWindow() 没有销毁子窗口

c++ - 为什么点击编辑框会关闭win32窗口(C++)?