我意识到在调用" createFile"时,即使其标题是已存在的标题,它也会创建一个新文件。
现在正在做的是首先搜索文件,如果我找不到它,我就创建它。解决一个简单问题的两种方法。
如果文件已经存在,有一种更好的方法可以覆盖它吗?
答案 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。
如果文件已经存在,你可以做的是删除它并用新的替换它(我想说的坏主意)或者只是在新文件末尾添加一个额外的数字,它将被添加到文件夹中