首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Qt应用程序部署在Mac/XP/Vista/Windows 7上:有任何公共访问目录来放置许可文件吗?

Qt应用程序部署在Mac/XP/Vista/Windows 7上:有任何公共访问目录来放置许可文件吗?
EN

Stack Overflow用户
提问于 2011-06-28 02:07:40
回答 4查看 1.5K关注 0票数 3

我必须在以下环境中部署Qt应用程序:

  • Mac /X(基于>=Tiger10.4英特尔,直至雪豹10.6.+)
  • Windows XP
  • Windows
  • Windows 7

我需要一个通用的访问目录来放置许可文件,并且我需要机器的每个用户都有对它的读/写访问权限--而不仅仅是管理员。

我检查了许多Qt函数,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QString QDir::homePath()
QDir QDir::home ()
QString QDir::rootPath ()
QString QDir::tempPath ()

...but它们似乎都返回特定于用户的路径或过于通用的路径。

是否有任何特定于Qt的函数来获得公共的“应用程序路径”?

考虑到操作系统的版本,我已经开始考虑创建自己的功能了,但即使在这种情况下,我也感到有些迷茫。您知道有什么好的来源可以为上面提到的操作系统找到适合自己的途径吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-28 04:39:31

这是对我自己问题的回答,但我会等着看是否有更好的解决方案。(也许有一个Qt函数我错过了)。

我使用QSettings类(@thequark:+1作为灵感来源)进行了以下黑客攻击:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---------------------------------------------
QString orgName = "fooOrg";
QString appName = "fooApp";
QSettings qsettings(QSettings::IniFormat, QSettings::SystemScope, orgName, appName);
QString iniFilepath = qsettings.fileName();
QString commAppPath = iniFilepath.left(iniFilepath.length() - 
                                       QString("/fooOrg/fooApp.ini").length());
---------------------------------------------

正如您所看到的,我并不真正使用QSettings对象,但是我只需要使用它的文件路径来查看Qt将把它存储在哪里。

重要的是要使用:

  • QSettings::IniFormat:是因为我们对一个文件感兴趣,而不是例如一个Windows注册表位置
  • QSettings::SystemScope:,因为我们需要特定于机器的路径,而不是特定于用户的路径。

上面的代码为(1) iniFilepath (2) commAppPath变量和各种O/S提供了以下结果:

Mac雪豹10.6.7

  1. /Library/Preferences/Qt/fooOrg/fooApp.ini
  2. /库/首选项/Qt

Windows SP3

  1. C:/文档和设置/所有用户/应用程序数据/fooOrg/fooApp.ini
  2. C:/文档和设置/所有用户/应用程序数据

Windows 7 (64)和Windows SP2

  1. C:/ProgramData/fooOrg/fooApp.ini
  2. C:/方案数据

虽然这是一个黑客,但我认为这是一个很好的解决方案,只涉及内部Qt调用,而不使用任何特定于O/S的函数。

如果你有更好的主意..。请让我知道。

编辑-PS: Mac中的目录"/Library/Preferences“对于非管理员用户是不可写的。最后,我使用了目录"/Users/Shared“。

票数 3
EN

Stack Overflow用户

发布于 2011-06-28 02:32:59

我也是Qt中的n00b,所以我不确定这是否是最好的选择,但是使用QSettings从设置/配置文件获取许可文件的路径如何?这个具有适当值的文件应该由安装程序创建。安装程序可以负责使用一些特定于操作系统的默认值,甚至可以在安装时询问用户,因此您的应用程序独立于操作系统。QSettings具有持久性,所以您不必费心阅读、写入文件。

票数 2
EN

Stack Overflow用户

发布于 2011-06-28 02:58:59

看看QDesktopServices::存储定位

QDesktopServices::DataLocation枚举似乎合适。

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

https://stackoverflow.com/questions/6504799

复制
相关文章
Java创建父级文件夹
/** * 创建父级文件夹 * * @param file * 完整路径文件名(注:不是文件夹) */ public static void createParentPath(File file) { File parentFile = file.getParentFile(); if (null != parentFile && !parentFile.exists()) { parentFile.mkdirs(); // 创建文件夹
試毅-思伟
2018/09/06
2.1K0
dos命令进入文件夹[通俗易懂]
输入 D: 回车,进入D盘的根目录,然后输入dir 回车 可以查看根目录下的文件和文件夹, 输入 cd空格文件夹的名字(不区分大小写) 进入文件夹根目录下,依次输入dir 查看该目录下的文件和文件夹。
全栈程序员站长
2022/07/29
5.8K0
cmd命令 拷贝某文件夹及其子文件夹文件到其它文件夹
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115956.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
2K0
linux shell:find命令批量删除文件夹或文件夹
linux的find 命令功能很强大,以下只是列举在删除文件操作的用法示例。 对于空文件夹和文件,执行find命令时指定 -delete 参数就可以直接删除
10km
2021/12/02
16.9K0
dos命令怎么进入一个文件夹(cmd强制删除文件夹命令)
输入“cd 盘符名:\文件夹名”,比如想进入的目录:D:\soft\Git文件,则输入“cd D:\soft\Git”,按“回车”键
全栈程序员站长
2022/07/30
2.8K0
dos命令怎么进入一个文件夹(cmd强制删除文件夹命令)
Linux删除文件夹命令实例
在用Linux的时分,有时分要删除一个文件夹,常常会提示次此文件非空,没法删除,这个时候,必需运用rm -rf命令。关于一些小白用户常常在运用Linux命令,会十分当心,以免搞出一些事情,下面小编将教细致教大家如何运用linux命令删除文件夹,需求的请珍藏。
逍遥子大表哥
2021/12/17
11.3K0
python移动文件,将一个文件夹里面的文件移动到另一个文件夹
python移动文件,将一个文件夹里面的文件移动到另一个文件夹 import shutil import os def remove_file(old_path, new_path): print(old_path) print(new_path) filelist = os.listdir(old_path) #列出该目录下的所有文件,listdir返回的文件列表是不包含路径的。 print(filelist) for file in filelist:
青阳
2021/04/02
29.2K0
DOS批处理 - CMD命令(复制、移动、重命名) (文件夹、子文件夹)
1、文件夹A里有很多子文件夹,这些文件夹里有很多不同格式的文件,我想把这些所有子文件夹里的文件全部提取(剪切)出来,放到A文件夹里面,那些子文件夹里就没有东西了。
浩Coding
2019/07/02
10.3K0
DOS批处理 - CMD命令(复制、移动、重命名) (文件夹、子文件夹)
Linux mkdir命令:创建目录(文件夹)
mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。mkdir 命令的基本格式为:
芯动大师
2023/10/28
6260
Linux mkdir命令:创建目录(文件夹)
linux删除文件夹命令「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158636.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
6.4K0
Windows copy命令_dos copy命令拷贝文件夹
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ …]] [destination [/A | /B]]
全栈程序员站长
2022/11/01
2K0
win10进入文件夹指令_命令行进去某个文件夹
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
1.5K0
Linux创建文件夹/目录命令mkdir
Linux创建文件夹或者创建目录命令mkdir详解,Linux百科分享Linux mkdir命令使用方法:
用户1685462
2021/08/27
16K0
Linux 文件夹内容相互拷贝操作命令
cp 命令使用 -r 参数可以将 packageA 下的所有文件拷贝到 packageB 中:
用户7639835
2021/08/30
5.3K0
linux命令看文件或文件夹个数[通俗易懂]
(ls -l|grep “^-“| wc -l)查看某个文件夹下文件的个数。 (ls -lR|grep “^-“| wc -l)查看某个文件夹下文件的个数,包括子文件夹下的文件个数。 (ls -l|grep “^d”| wc -l)查看某个文件夹下文件夹的个数。 (ls -lR|grep “^d”| wc -l)查看某个文件夹下文件夹的个数,包括子文件夹下的文件夹个数。 (ls -l| wc -l)查看文件夹下所有的文件和文件夹。也就是统计ls -l命令所输出的行数。
全栈程序员站长
2022/07/11
4.1K0
Linux终端删除文件夹命令「建议收藏」
本文介绍Linux系统中删除文件夹的命令,包括:rmdir 、 rm 。 Linux系统下删除文件夹是一个非常高频的需求,有很多方法可以删除文件夹,比如使用图形界面,或者通过终端删除。本文将介绍在 Linux 命令行下使用命令删除文件夹。
全栈程序员站长
2022/09/14
7.5K0
Linux 文件夹内容相互拷贝操作命令
cp 命令使用 -r 参数可以将 packageA 下的所有文件拷贝到 packageB 中:
用户4988085
2021/07/20
4.7K0
Linux 命令查找指定文件夹下符合查询条件的文件和文件夹实例演示
演示目录结构如下: 查找当前文件夹下的文件和文件夹。 cd /data/dmdbms/bin/ find -name "dimp" ./dimp 查找指定文件夹下的文件和文件夹。 find /
小蓝枣
2020/09/24
3.2K0
Linux 命令查找指定文件夹下符合查询条件的文件和文件夹实例演示
Linux\Mac 递归移除某文件夹下所有文件(不包含文件夹)的执行权限命令
今天别人给了我传了一个文件夹,里面是一个项目代码。我查看了一下,发现所有文件都是有执行权限的。这让我很不爽,于是我将所有文件(不包含文件夹)的执行权限全部去掉。执行命令如下:
FungLeo
2020/06/03
1.6K0
JAVA运用dos命令强制删除文件夹
在对文件夹进行操作时,如果用file.deleate()方法,有时候恐怕不凑效.用了第三方的FileUtils的forceDeleteFile()还是不凑效,所以,自己就用java写一个基于dos命令的方法来实现强制删除文件夹. 这并没有什么难的,只要知道dos命令,在java文件中调用runtime就好办了. 在这里为写了三个方法:删除某个文件目录;删除某个文件(不是文件夹)和清空某个文件夹下的所有文件及文件夹.自己根据自己的需求用吧.
全栈程序员站长
2022/06/27
1.3K0

相似问题

将文件从子文件夹移动到当前文件夹

40

隐藏父文件夹,让NTFS子文件夹完全访问

10

将邮箱移动到公用文件夹

20

Apache重定向到父文件夹

20

如何递归地将子文件夹中的所有文件(包括隐藏文件)移动到*nix中的父文件夹中?

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文