如何在DriveAPI中创建文件覆盖(如果存在)?

时间:2015-05-28 22:10:42

标签: android android-file google-drive-android-api

我意识到在调用" createFile"时,即使其标题是已存在的标题,它也会创建一个新文件。

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

如果文件已经存在,有一种更好的方法可以覆盖它吗?

2 个答案:

答案 0 :(得分:2)

Google云端硬盘实际上是一种“扁平”模式,其中每个对象都由其唯一ID标识。

因此,当创建对象(文件/文件夹)时,它将获得唯一的ID。对象可能/不具有内容。其他一切都是'元数据'。流行操作系统的树结构实际上是由元数据链接(父链接)“伪造”的。这意味着在Google云端硬盘中,您可能在父对象中使用相同的元数据(标题/名称)多个孩子。对于任何子对象,您可能还有多个父级(单个对象出现在多个父级的文件夹中)。

所有这些咆哮对你的情况来说意味着一件事:

创建文件/文件夹并获取其ID后,可以通过修改内容和/或元数据来实现创建具有相同名称的新文件(您可以看到)一个typical example here)。

如果你采取删除/创建的路径(也可以是but had not been until recently),你实际上是:
1 /修改原始文件/文件夹的'删除/删除'元数据
2 /创建具有不同ID的全新对象

在选择使用的方法之前请三思而后行。 UPDATE方法是一个“一步”,在异步环境中最好的方法(创建必须等待成功删除)。另一方面,如果你使用DELETE / CREATE方法,你可以利用'trashed'对象将会存在一段时间的事实。

祝你好运

答案 1 :(得分:0)

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

编辑:ID是所有同步发生的重要信息。标题可以很容易地改变,因此使用它作为唯一标识符将是一个坏主意。因此唯一的ID。

如果文件已经存在,你可以做的是删除它并用新的替换它(我想说的坏主意)或者只是在新文件末尾添加一个额外的数字,它将被添加到文件夹中