Android 在Qt中的不同手机上创建文件
我想创建一个跨平台的应用程序。它不属于任何特定的平板电脑或智能手机。它应该可以在任何设备上运行。但是,我想在设备上创建一个文件。问题是我不知道在哪里保存它。因为它是跨平台的,所以我不能为该文件指定任何路径。任何关于如何独立于任何特定平台执行此类保存过程的想法 您应该将文件保存在Android 在Qt中的不同手机上创建文件,android,ios,qt,mobile,filesystems,Android,Ios,Qt,Mobile,Filesystems,我想创建一个跨平台的应用程序。它不属于任何特定的平板电脑或智能手机。它应该可以在任何设备上运行。但是,我想在设备上创建一个文件。问题是我不知道在哪里保存它。因为它是跨平台的,所以我不能为该文件指定任何路径。任何关于如何独立于任何特定平台执行此类保存过程的想法 您应该将文件保存在HOME/yourdirname/中。您可以使用创建目录、访问目录等。QDir与系统无关,还提供了返回主目录绝对路径的函数。Qt提供了nice类。直接从文档: QStandardPaths类提供了访问标准路径的方法。 此类
HOME/yourdirname/
中。您可以使用创建目录、访问目录等。QDir
与系统无关,还提供了返回主目录绝对路径的函数。Qt提供了nice类。直接从文档:
QStandardPaths类提供了访问标准路径的方法。
此类包含用于查询本地文件系统上的标准位置的函数,用于查询常见任务,如用户特定目录或系统范围的配置目录
尤其应使用静态方法:
QStringList QStandardPaths::standardLocations(StandardLocation type)
主目录的常见用法可定义如下:
QString basePath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation)[0]
注意,我查询了返回的StringList
中的第一个条目,但没有检查它是否为空。这是安全的,因为返回的对象对于主位置而言永远都是空的!情况并非总是如此,但文档对此非常详细,而且还详细说明了在每个特定平台上返回的位置。还要注意的是,如果没有不同的指定(具体情况请参见文档),则StringList
中返回的第一个条目始终是可写的条目
从Qt5.5开始,有关iOS和Android的文档已经完成。这是因为在较新的Qt版本上,iOS文件系统得到了正确和完全的支持。对于小于5.2的版本,情况并非如此(例如,请参阅已关闭但也已阅读的,以了解有关iOSQStandardPaths
在整个Qt发行周期内的支持的更多详细信息)
最后是一个建议。如果您对通过USB在android/iOS设备和PC之间共享文件感兴趣,一个好的位置选择可以是QStandardPaths::DownloadLocation
。请注意,在iOS中,必须定义文件共享的其他策略,即必须在应用程序的信息列表中设置UIFileSharingEnabled
键