Google Drive Java API修改modifiedTime失效问题求助
解决Google Drive Java API修改modifiedTime不生效的问题
调用Drive API的files().update接口时,默认会自动将文件的modifiedTime设为当前时间,即便你在FileMetadata中指定了自定义时间也会被覆盖——这是因为API默认的时间处理逻辑会忽略传入的modifiedTime值。
要让自定义的修改时间生效,必须在update请求中显式指定ModifiedTimeBehavior为SET_FIELD_VALUE,告诉API使用你传入的时间值,而非自动生成当前时间。
修改后的代码如下:
File fileMetadata = new File(); DateTime newModifiedTime = new DateTime(lastModified); fileMetadata.setModifiedTime(newModifiedTime); File file = service.files().update(file.getId(), fileMetadata) .setFields("id, name, modifiedTime") // 指定使用传入的modifiedTime值 .setModifiedTimeBehavior(Files.Update.ModifiedTimeBehavior.SET_FIELD_VALUE) .execute();
额外注意事项:
- 你必须拥有该文件的编辑权限才能修改
modifiedTime - 即便同时修改其他字段(比如你注释掉的
description),也需要加上上述参数,否则modifiedTime依然会被覆盖为当前时间
内容的提问来源于stack exchange,提问作者b210205
相关产品推荐
相关产品推荐

