【问题标题】:How to save a file from Qrc to application directory如何将文件从 Qrc 保存到应用程序目录
【发布时间】: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

【问题讨论】:

    标签: qt qfile qdir qt5.15


    【解决方案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!
    猜你喜欢
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2017-05-23
    • 2016-06-24
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2015-04-14
    相关资源
    最近更新 更多