求解,qt android怎么把assets目录下的文件拷贝到指定文件夹

芒果黑 2017-07-29 09:21:00
我使用QFile::copy("assets:/文件名","/data/data/包名/文件名");不成功啊
...全文
616 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
芒果黑 2017-08-04
  • 打赏
  • 举报
回复
引用 2 楼 D759378563 的回复:
提供一种方法,用QFile先读取asset文件的内容,然后写入到目标文件中去。

    QByteArray data;
    QFile fileSrc("assets:/文件名");
    if (fileSrc.open(QFile::ReadOnly)) {
        data = fileSrc.readAll();
        fileSrc.close();
    } else {
        qDebug() << "src file open failed " << fileSrc.fileName() << fileSrc.errorString();
        return ;
    }
    QFile fileDest("/data/data/包名/文件名");
    if (fileDest.open(QFile::WriteOnly)) {
        fileDest.write(data);
        fileDest.close();
    } else {
        qDebug() << "dest file open failed" << fileDest.fileName() << fileDest.errorString();
        return ;
    }
非常感谢,按你的方法可以实现,不然得调用android的例程,没学过java有点苦逼
芒果黑 2017-08-04
  • 打赏
  • 举报
回复
引用 1 楼 mini_peng 的回复:
目的文件夹,有写入权限吗?
是由于assets里的文件是以二进制的形式保存起来了,所以copy不了,用楼下的方法可以了
jared2020 2017-08-02
  • 打赏
  • 举报
回复
提供一种方法,用QFile先读取asset文件的内容,然后写入到目标文件中去。

    QByteArray data;
    QFile fileSrc("assets:/文件名");
    if (fileSrc.open(QFile::ReadOnly)) {
        data = fileSrc.readAll();
        fileSrc.close();
    } else {
        qDebug() << "src file open failed " << fileSrc.fileName() << fileSrc.errorString();
        return ;
    }
    QFile fileDest("/data/data/包名/文件名");
    if (fileDest.open(QFile::WriteOnly)) {
        fileDest.write(data);
        fileDest.close();
    } else {
        qDebug() << "dest file open failed" << fileDest.fileName() << fileDest.errorString();
        return ;
    }
牧牛童子 2017-07-29
  • 打赏
  • 举报
回复
目的文件夹,有写入权限吗?

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧