android - 为什么无法在Android上使用Qt在app目录中创建多个文件

标签 android c++ qt

我有一个带有按钮的基本Android应用程序,每次按下该按钮都应在应用程序标准目录(/storage/emulated/0/Android/data/org.qtproject.example.MyApp/files/)中创建一个文件。
这是每次按键时执行的代码提示:

void MainWindow::on_pushButton_clicked() {
    QString filePath = "/storage/emulated/0/Android/data/org.qtproject.example.MyApp/files/" + "file_number_" + QString::number(counter);
    QFile myFile(filePath);

    if (myFile.open(QIODevice::WriteOnly)) {
        myFile.write("foo");
        ++counter;
    } else {
        qDebug() << "Unable to open file" << filePath;
    }
它应该创建文件“file_number_0”,“file_number_1”,“file number_2”等。
但是,它似乎仅适用于第一个文件。多次按下时,它不会创建多个文件,但不会对以下文件引发错误。它不会而不是打印“无法打开文件”。所有文件似乎都已成功打开,但实际上仅在目录中创建了初始文件。
如果删除应用程序目录并在运行时重新创建,则下一个文件将再次成功创建,但随后的文件将不会像开始时那样成功创建。

最佳答案

问题似乎是我正在通过USB从计算机查看文件夹。我认为这与Android的权限系统有些困惑。
我关闭了计算机上的文件浏览器,而是在手机上使用了它,现在它可以工作了。

关于android - 为什么无法在Android上使用Qt在app目录中创建多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64524873/

相关文章:

android - 通过 NFC 将 URL 从 Android 发送到 Windows Phone 会提供 Play Store 链接

Android 应用程序如何测试开发版与实时版

c++ - 错误 : "expected a type specifier"

python - 在选项卡之间传递变化的数据

javascript - QTcpSocket 不刷新 HTTP header ( cometd 模式)

android - 如何以编程方式从启动器(在 Root设备上)中删除应用程序

android - 我的 Android UI 测试没有 ID

c++ - 将参数传递给方法 C++

c++ - 为什么我在 C 库中看到 THROW?

c++ - 如何在 CPU 负载为 100% 时保持 UI 响应(主要使用 C++ 和 Qt)?