如何将文件从 Qrc 保存到应用程序目录
Posted
技术标签:
【中文标题】如何将文件从 Qrc 保存到应用程序目录【英文标题】:How to save a file from Qrc to application directory 【发布时间】:2021-07-11 22:32:36 【问题描述】:我使用的是 Qt 5.15.1。
如果我的 Qt 应用程序的 qrc 文件中有一个文件,是否可以将该文件保存到应用程序的目录中,以便我可以将该文件用作文件系统上的普通文件?
QFile my_file(":/data/file.txt");
QDir my_app_dir(QCoreApplication::applicationDirPath());
在上面的代码中,如何将my_file
保存到my_app_dir
?
环境: MacOS Catalina Qt:商业版 5.15.1
【问题讨论】:
【参考方案1】:您只需复制内容:
QFile my_file(":/data/file.txt");
QDir my_app_dir(QCoreApplication::applicationDirPath());
QString new_path = my_app_dir.absoluteFilePath("file.txt");
if(!my_file.copy(new_path))
qDebug() << my_file.error() << my_file.errorString();
【讨论】:
@TheWaterProgrammer 这应该适用于任何操作系统,因为这是一项微不足道的任务,你试过了吗?如果您在询问之前尝试代码会很好。 我试过了。它挂起我的应用程序。因此想知道它是否在 macOS Catalina 上存在权限问题。 这取决于 applicationDirPath() 所在的位置,如果您没有权限写入,那么您将遇到问题。注意:最好在您的帖子中指出环境的特征,例如操作系统 对不起。我现在提到了环境。但我正在 android 上尝试这样做,以消除文件权限的因素。如果此代码适用于 Android,我会接受。文件权限是一个单独的问题。my_file.copy
总是返回 false!以上是关于如何将文件从 Qrc 保存到应用程序目录的主要内容,如果未能解决你的问题,请参考以下文章
如何将 qrc 数据包含到使用 CMake 编译的基于 Qt 的二进制文件中
如何从resources_rc.py恢复resource.qrc文件
如何使用 pandas read_pickle 从 qrc 资源文件中读取包含 pandas 数据框的 pickle 文件?