0

C# 应用程序

我需要使用文件 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;
        }

抛出错误:找不到文件

4

1 回答 1

0

2件事:

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

  2. 您确定错误是从“request.Upload()”而不是“byte[] byteArray = System.IO.File.ReadAllBytes(newFilename);”引发的吗?或“service.Files.Get(fileId).Fetch();”。你能附上确切的异常及其堆栈跟踪吗?

埃亚尔

于 2013-10-17T13:16:52.757 回答