QML 数据文件夹
QML data folder
我的应用程序基于我使用Camera
和CameraCapture
从相机捕获图像QML
。捕获后,我想将捕获的图像存储在带有CameraCapture.captureToLocation()
的应用程序数据文件夹中。但是我不知道如何获取此文件夹的路径。所以我的问题 - 如何获取具有写入权限的应用程序文件夹的路径?Qt有办法得到它吗?我猜它应该是系统指定的文件夹。例如,在Android中,它应该是/data/data/AppName。正如我所看到的,LocalStorage在类似的地方创建其文件。
/data/data/AppName
没有在QStandardPaths中映射,但我认为最好使用这个:
QStandardPaths::AppDataLocation 17 返回可以存储持久性应用程序数据的目录位置。这是一个特定于应用程序的目录。要获取存储要与其他应用程序共享的数据的路径,请使用 QStandardPaths::GenericDataLocation。返回的路径永远不会为空。在 Windows 操作系统上,这将返回漫游路径。此枚举值是在 Qt 5.4 中添加的。
或者在早期版本中的这个:
QStandardPaths::D ataLocation 9 返回与 AppLocalDataLocation 相同的值。此枚举值已弃用。最好使用 AppDataLocation,因为在 Windows 上,建议使用漫游路径。
这些将在Android上设置为DataLocation "<APPROOT>/files", "<USER>/<APPNAME>/files"
下面。
但请注意,从 5.4 开始,后者已弃用,如文档所示。然后您可以按如下方式设置它:
QString QStandardPaths::writableLocation(StandardLocation type(
返回应将文件类型写入到的目录,如果无法确定位置,则返回空字符串。
注意:返回的存储位置可以是不存在的目录;即,它可能需要由系统或用户创建。
所以,你会写这样的东西:
QString dataPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
// Do not need to check against empty string for this value as per documentatio
CameraCapture.captureToLocation(dataPath);
注意:请不要将QStandardPaths::ApplicationsLocation
用于此目的,因为这是非专用位置。此外,它在Android上甚至不受支持:
应用程序位置不受支持(目录不可读(
如果要在应用程序之间共享映像,则需要对上面的代码进行细微调整。虽然我认为你想要上面的那个,但有点不清楚你想要哪一个,所以我同时提到:
StandardPaths::GenericDataLocation 11 返回可以存储跨应用程序共享的持久数据的目录位置。这是一个通用值。返回的路径永远不会为空。
这设置为在安卓上GenericDataLocation "<USER>"
。类文档中提到了确切的映射,您只需向下滚动到表即可。我无法提供直接URL,因为该部分没有永久链接。你也可以检查自己,哪个最适合。
您可以使用QStandardPaths
指定可写位置:
QString path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) ;
在这里,QStandardPaths::GenericDataLocation
返回一个目录位置,在该位置可以存储跨应用程序共享的持久数据,并且它永远不会为空。
也可以使用QStandardPaths::ApplicationsLocation
或许多其他可以在这里找到的东西。您可以在C++端实现一个函数,并在 QML 中使用它来获取标准位置。
- 如何将更多文件夹添加到c++include路径
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- VS2017,C++包含目录与附加包含目录,子文件夹包含失败-但为什么
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 如何在文档文件夹中创建目录
- "assimp/config.h"找不到,但它在文件夹中
- C++入门 5 版:类消息和文件夹
- C++ - 忽略并从其他文件获取数据
- 我可以在 Arduino 的库文件夹之外安装库吗?
- 如何按文件扩展名引用文件夹中的文件
- 在QTreeView中仅显示共享驱动器和文件夹
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 介子复制/安装头文件到输出目录并保持文件夹结构
- vcruntime.h 从 Windows 包含文件夹中丢失?
- 在文件夹迭代上实现 RAII
- 使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
- 如何找到Windows PC的共享数据/文件夹
- QML 数据文件夹
- 如何将数据写入opencv文件夹中的xml文件