J'essaie de déplacer un fichier d'un dossier à l'autre à l'aide de l'API Google Drive v3. aquí . J'ai utilisé l'exemple de code .NET de la page de documentation et créé une méthode qui ressemble à ceci :
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});
}
Lorsque j'exécute ce code, j'obtiens l'erreur suivante :
Le champ parents n'est pas directement accessible en écriture dans les demandes de mise à jour. Utilisez plutôt les paramètres addParents et removeParents à la place.
L'erreur n'a pas vraiment de sens pour moi car cet exemple de code provient de la page de documentation elle-même. Je n'arrive pas à comprendre quels autres paramètres sont concernés. Quels paramètres addParents et removeParents signifient-ils ? Est-ce que updateRequest.AddParents
et updateRequest.RemoveParents
pas les bons paramètres ?