使用在Gdrive中与我共享的文件ID更新文件

本文关键字:文件 共享 ID 更新 Gdrive | 更新日期: 2023-09-27 18:35:47

C# App

我需要使用文件 ID 更新在 Gdrive 中共享的文件。

法典:

public static Google.Apis.Drive.v2.Data.File UpdateFile(DriveService service, 
String fileId, String newTitle, String newDescription, String newMimeType, 
String newFilename, bool newRevision)
        {
        try
        {
            // First, retrieve the file from the Google Drive.
            Google.Apis.Drive.v2.Data.File file = service.Files.Get(fileId).Fetch();
            // Set the file's new metadata.
            file.Title = newTitle;
           // file.Description = newDescription;
            file.MimeType = newMimeType;
            // Get the file's new content and read it into a memory stream
            byte[] byteArray = System.IO.File.ReadAllBytes(newFilename);
            System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
            // Call the Update API method passing in the updated information.
            FilesResource.UpdateMediaUpload request = service.Files.Update(file, fileId, stream, newMimeType);
            // Tell Google Drive if this is a new revision of the file or not.
            request.NewRevision = newRevision;
            // Execute the update
            request.Upload();
            // Get the response back from Google Drive and set the updatedFile 
            //object to the returned File informational object
            Google.Apis.Drive.v2.Data.File updatedFile = request.ResponseBody;
            // Return the updated file object so the caller has a handle on it.
            return updatedFile;
        }

引发错误:找不到文件

使用在Gdrive中与我共享的文件ID更新文件

2件事

  1. 请将库更新到最新版本。可以从 NuGet - http://www.nuget.org/packages/Google.Apis.Drive.v2/下载最新的驱动器 API。然后,您可以使用最新的上传API,它解决了几个错误。另请注意,从 1.4.0-beta 开始,我们将 Fetch 方法更改为执行,因此您需要更改代码。请记住还要安装Google.Apis.Authentication软件包(在计划几周后的下一个版本中,我们将提供一个新的身份验证库,这将使OAuth2"跳舞"变得更加容易,并将支持其他Windows平台,如WinRT和WP)。

  2. 您确定错误是从"请求"引发的吗?Upload()"而不是来自"byte[] byteArray = System.IO.File.ReadAllBytes(newFilename);"或"service.Files.Get(fileId).Fetch();".您可以附加确切的异常及其堆栈跟踪吗?

埃亚尔