Google 驱动器 API:如何在 C# 中更新文件的父级 属性?
Google Drive API: How to update Parents property of File in C#?
我正在尝试使用 C# google 驱动器 API.
将文件从一个文件夹复制到另一个文件夹
不幸的是,没有(我能找到的)在 C# 中执行此操作的文档:https://developers.google.com/drive/api/guides/folder
以下是我尝试过的几种方法:
Google.Apis.Drive.v3.Data.File file = _files.Where(x => x.Name == fileName).First();
_driveService.Files.Update(file, file.Id).AddParents = _destinationFolderId;
_driveService.Files.Update(file, file.Id).Execute();
Google.Apis.Drive.v3.Data.File file = _files.Where(x => x.Name == fileName).First();
file.Parents = new List<string> { _destinationFolderId };
_driveService.Files.Update(file, file.Id).Execute();
Google.Apis.Drive.v3.Data.File file = _files.Where(x => x.Name == fileName).First();
_driveService.Files.Update(file, file.Id).Fields = "addParents";
_driveService.Files.Update(file, file.Id).Execute();
但是,所有这些都会引发错误:
服务驱动器抛出异常。 HttpStatusCode 被禁止。 parents 字段在更新请求中不可直接写入。请改用 addParents 和 removeParents 参数。
我看不到 addParents 或 removeParents 参数,就像 python API:
file = drive_service.files().update(fileId=file_id,
addParents=folder_id,
removeParents=previous_parents,
fields='id, parents').execute()
也许错误消息具有误导性/不正确?
更新方法遵循补丁方法。这意味着您只发送要更新的内容,而不发送其他字段。
然而,更新父项有点不同,它需要使用 AddParents 和 RemoveParents 方法。如果您实际上不想更改文件中的任何其他元数据,那么您只需为文件正文发送一个空值即可。
var updateRequest = service.Files.Update(null, fileId);
updateRequest.AddParents = folderId;
updateRequest.Execute();
我正在尝试使用 C# google 驱动器 API.
将文件从一个文件夹复制到另一个文件夹不幸的是,没有(我能找到的)在 C# 中执行此操作的文档:https://developers.google.com/drive/api/guides/folder
以下是我尝试过的几种方法:
Google.Apis.Drive.v3.Data.File file = _files.Where(x => x.Name == fileName).First();
_driveService.Files.Update(file, file.Id).AddParents = _destinationFolderId;
_driveService.Files.Update(file, file.Id).Execute();
Google.Apis.Drive.v3.Data.File file = _files.Where(x => x.Name == fileName).First();
file.Parents = new List<string> { _destinationFolderId };
_driveService.Files.Update(file, file.Id).Execute();
Google.Apis.Drive.v3.Data.File file = _files.Where(x => x.Name == fileName).First();
_driveService.Files.Update(file, file.Id).Fields = "addParents";
_driveService.Files.Update(file, file.Id).Execute();
但是,所有这些都会引发错误:
服务驱动器抛出异常。 HttpStatusCode 被禁止。 parents 字段在更新请求中不可直接写入。请改用 addParents 和 removeParents 参数。
我看不到 addParents 或 removeParents 参数,就像 python API:
file = drive_service.files().update(fileId=file_id,
addParents=folder_id,
removeParents=previous_parents,
fields='id, parents').execute()
也许错误消息具有误导性/不正确?
更新方法遵循补丁方法。这意味着您只发送要更新的内容,而不发送其他字段。
然而,更新父项有点不同,它需要使用 AddParents 和 RemoveParents 方法。如果您实际上不想更改文件中的任何其他元数据,那么您只需为文件正文发送一个空值即可。
var updateRequest = service.Files.Update(null, fileId);
updateRequest.AddParents = folderId;
updateRequest.Execute();