程序文件中的安装路径:一些问题 我正在开发一个QT 5 C++的Windows(XP到10及以上)软件。到目前为止,默认安装路径为C:\Users\Public\Kontiki。 然而,我读到这可能不是一个好的实践,我宁愿将它安装在C:\ProgramFiles\Kontiki中。 这就是我打算做的
然而,我有两个主要关切 关注1 “我的安装”文件夹中的文件包括.exe、.dll和文档。 但是,它还包括用户参数(.txt文件)。用户必须能够在我的程序中的GUI帮助下更改这些参数。问题是,当我的软件位于程序文件中的安装路径:一些问题 我正在开发一个QT 5 C++的Windows(XP到10及以上)软件。到目前为止,默认安装路径为C:\Users\Public\Kontiki。 然而,我读到这可能不是一个好的实践,我宁愿将它安装在C:\ProgramFiles\Kontiki中。 这就是我打算做的,c++,qt,program-files,C++,Qt,Program Files,然而,我有两个主要关切 关注1 “我的安装”文件夹中的文件包括.exe、.dll和文档。 但是,它还包括用户参数(.txt文件)。用户必须能够在我的程序中的GUI帮助下更改这些参数。问题是,当我的软件位于程序文件中时,无法执行此操作,因为它们没有写入程序文件的权限。我应该做的是将.txt参数文件放在AppData中。所以我要做的是: 在安装时(使用NSIS安装程序),我会将.txt参数文件写入$APPDATA 在我的Qt程序中,我将使用QStandardPaths::AppDataLocatio
程序文件
中时,无法执行此操作,因为它们没有写入程序文件
的权限。我应该做的是将.txt参数文件放在AppData
中。所以我要做的是:
$APPDATA
QStandardPaths::AppDataLocation
所有这些都表明,我担心的是,我不确定NSIS安装程序$APPDATA
的路径是否始终与Qt使用QStandardPaths::AppDataLocation
返回的路径相同。例如,可能在新版本的Windows上会有一些差异或其他东西。也许这不是一个合法的担忧,但我想核实一下如果程序安装在
ProgramFiles
中,我是否可能会遇到UAC问题(例如,如果用户不是管理员)或其他问题
非常感谢你的帮助 如果程序安装在
ProgramFiles
中,则用户可以执行该程序而不会出现任何问题(无论管理员状态如何)
但是,如果应用程序必须更新任何文件(.txt文件),那么用户帐户中的任何目录都是一个好地方。对于这种情况,大多数应用程序都使用文档
文件夹
而且ProgramFiles
目录并不是特定于用户的
最好的方法是为要放置要更新的文件的目录创建一个用户环境变量(在任何意外情况下易于修改)。以编程方式读取NSIS文件和应用程序中的环境变量并使用它
环境变量ex:
PROJECTDIR--C:\Users((USERID))\Documents\PROJECTDIR非常感谢您的回答。我希望所有用户共享相同的参数。然后,我的想法是将参数放在C:\ProgramData\Mysoft中,这是通用数据位置。然而,据我所知,这是一个只读位置,用户将无法在那里保存其参数。。。我想我没有选择权,我必须在用户路径中选择一个路径?如果是这样,我必须将位置设置为C:/Users/alecs26/AppData/Roaming/TestPath。问题是,如果我在软件安装时创建.txt参数文件,这个用户就可以了,但是如果其他用户登录,他的AppData位置将没有任何文件。我可以检测到没有文件,并在此位置使用默认参数创建文件。这是个好主意吗?是的。。。。如果您想共享信息,请尝试写入到每个人都有写入权限的远程位置。。。。