Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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 如果存在,如何在DriveAPI重写中创建文件?_Android_Android File_Google Drive Android Api - Fatal编程技术网

Android 如果存在,如何在DriveAPI重写中创建文件?

Android 如果存在,如何在DriveAPI重写中创建文件?,android,android-file,google-drive-android-api,Android,Android File,Google Drive Android Api,我意识到,当调用“createFile”时,它会创建一个新文件,即使它的标题是一个已经存在的标题 我现在要做的是先搜索文件,如果找不到,我就创建它。一个简单问题的两种方法 如果文件已经存在,有更好的方法来创建一个覆盖它的文件吗?我认为文件在驱动器API中是由其ID唯一标识的。因此,您无法使用驱动器API本身来控制标题。因此,自己动手可能是最好的选择 编辑:ID是所有同步发生的重要因素。标题很容易更改,因此将其用作唯一标识符是个坏主意。因此是唯一的ID 如果文件已经存在,您可以将其删除并替换为新文

我意识到,当调用“createFile”时,它会创建一个新文件,即使它的标题是一个已经存在的标题

我现在要做的是先搜索文件,如果找不到,我就创建它。一个简单问题的两种方法


如果文件已经存在,有更好的方法来创建一个覆盖它的文件吗?

我认为文件在驱动器API中是由其ID唯一标识的。因此,您无法使用驱动器API本身来控制标题。因此,自己动手可能是最好的选择

编辑:ID是所有同步发生的重要因素。标题很容易更改,因此将其用作唯一标识符是个坏主意。因此是唯一的ID


如果文件已经存在,您可以将其删除并替换为新文件(我会说这是个坏主意),或者只是在新文件的末尾添加一个额外的数字,将其添加到文件夹中。

Google Drive实际上是一个“平面”模型,其中每个对象都由其唯一的ID标识

因此,当一个对象(文件/文件夹)被创建时,它会得到一个唯一的ID。该对象可能有/没有内容。其他一切都是“元数据”。流行OSs的树结构实际上是由元数据链接(父链接)伪造的。这意味着在Google Drive中,父对象中可能有多个子对象具有相同的元数据(标题/名称)。对于任何子对象,您也可能有多个父对象(单个对象显示在多个父对象的文件夹中)

所有这些咆哮对你的处境意味着一件事:

创建文件/文件夹并获得其ID后,可以通过修改其内容和/或元数据来完成“创建具有相同名称的新文件”(您可以看到)

如果您选择delete/create(这也是可能的),您实际上是:
1/修改原始文件/文件夹的“垃圾/已删除”元数据
2/创建具有不同ID的全新对象

在选择使用的方法之前,请三思。更新方法是一种“一步”方法,在异步环境中更可取(创建必须等待成功删除)。另一方面,如果您使用删除/创建方法,您可能能够利用“垃圾”对象将存在一段时间这一事实

祝你好运