【发布时间】:2017-03-20 12:42:23
【问题描述】:
我正在尝试使用 Google Drive API v3 将文件从一个文件夹移动到另一个文件夹。我找到了如何处理这个here 的文档。我使用了文档页面中的 .NET 示例代码并创建了一个如下所示的方法:
public ActionResult MoveFile(string fileToMove, string destination)
{
DriveService service = new DriveService(new BaseClientService.Initializer
{
HttpClientInitializer = <USER CREDENTIAL>,
ApplicationName = "APPNAME"
});
var searchFiles = service.Files.List();
searchFiles.Corpus = FilesResource.ListRequest.CorpusEnum.User;
searchFiles.Q = "name = '" + fileToMove + "'";
searchFiles.Fields = "files(*)";
string fileToMoveId = searchFiles.Execute().Files[0].Id;
searchFiles.Q = "name = '" + destination + "'";
string destinationId = searchFiles.Execute().Files[0].Id;
//Code used from documentation
// Retrieve the existing parents to remove
var getRequest = service.Files.Get(fileToMoveId);
getRequest.Fields = "parents";
var file = getRequest.Execute();
var previousParents = String.Join(",", file.Parents);
// Move the file to the new folder
var updateRequest = service.Files.Update(file, fileToMoveId);
updateRequest.Fields = "id, parents";
updateRequest.AddParents = destinationId;
updateRequest.RemoveParents = previousParents;
file = updateRequest.Execute();
return RedirectToAction("Files", new {folderId = destinationId});
}
当我执行此代码时,我收到以下错误:
parents 字段在更新请求中不可直接写入。使用 addParents 和 removeParents 参数。
这个错误对我来说真的没有意义,因为这个代码示例来自文档页面本身。我无法弄清楚它们的其他参数是什么意思。 addParents 和 removeParents 参数是什么意思? updateRequest.AddParents 和 updateRequest.RemoveParents 不是正确的参数吗?
【问题讨论】:
-
对于尝试更新文件时遇到此错误的任何人。您需要从元数据中删除“parents”字段并添加具有相同 parentId 的 removeParents 和 addParents 字段。
标签: c# asp.net-mvc google-api google-drive-api google-api-dotnet-client