Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Qt中的不同手机上创建文件_Android_Ios_Qt_Mobile_Filesystems - Fatal编程技术网

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的版本,情况并非如此(例如,请参阅已关闭但也已阅读的,以了解有关iOS
QStandardPaths
在整个Qt发行周期内的支持的更多详细信息)

最后是一个建议。如果您对通过USB在android/iOS设备和PC之间共享文件感兴趣,一个好的位置选择可以是
QStandardPaths::DownloadLocation
。请注意,在iOS中,必须定义文件共享的其他策略,即必须在应用程序的信息列表中设置
UIFileSharingEnabled