gpt4 book ai didi

ios - iOS 上的应用程序私有(private)目录,可以访问从 Qt API 创建文件

转载 作者:行者123 更新时间:2023-12-03 20:03:52 27 4
gpt4 key购买 nike

我正在 iOS 上使用 Qt 应用,并且希望将文件保存到应用程序的私有(private)目录中,以便其他应用无法访问我的文件。通读文档 here ,数据容器下的 /Documents 目录看起来是保存应用程序私有(private)文件的路径。

首先我选择使用返回的QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)/var/mobile/Containers/Data/Application/123XX-XXXX-XXXX-XXXX/Library/Application Support/MyApp。但后来我发现我无法在那里创建任何文件。也在 App 文件夹内尝试了 /Documents 。但徒劳无功。

其次我尝试了QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation),它返回了/var/mobile/Containers/Data/Application/123XX-XXXX- XXXX-XXXX/文档。我可以在这里创建并保存我的文件。

在 iOS 上,创建应用程序私有(private)文件的正确路径是什么?
如何使用Qt获取路径?

以某个ID命名为123XX-XXXX-XXXX-XXXX的目录,这是应用程序目录还是同一目录中的Library/Application Support/MyApp

最佳答案

我遇到了同样的问题,例如我创建了一个 sqlite 文件。但您将创建的文件可以是您想要的每个文件。在我的示例中,我需要创建一个 sqlite 文件。

我是这样解决的:

    QString dbName = "mydb.sql";
QString dbLocation;

#ifdef Q_OS_ANDROID
dbLocation = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
#endif

#ifdef Q_OS_IOS
dbLocation = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
#endif

db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbLocation + "/" + dbName);
qDebug() << db.database(dbLocation + "/" + dbName);
qDebug() << db.databaseName();

现在你可以保存文件了,我使用DocumentsLocation来获取路径,在iOS上总是有效,但在Android上不起作用,为了准备Android你使用另一个路径:AppDataLocation。在文档位置,您可以在 iOS 上写入/读取/放置和创建文件。在 AppDataLocation 位置,您可以在 Android 上写入/读取/放置和创建文件。DocumentsLocation 中未拒绝权限。

关于ios - iOS 上的应用程序私有(private)目录,可以访问从 Qt API 创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45153658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com