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;
}
抛出错误:找不到文件。
答案 0 :(得分:0)
2件事:
请将库更新到最新版本。您可以从NuGet下载最新的驱动器API - http://www.nuget.org/packages/Google.Apis.Drive.v2/。 然后,您可以使用最新的上传API来解决几个错误。 另请注意,从1.4.0-beta我们将Fetch方法更改为Execute,因此您需要更改代码。 请记得同时安装Google.Apis.Authentication软件包(在下一个版本中,计划在几个星期之后,我们将提供一个新的Auth库,它将使OAuth2"跳舞更容易,并将会更容易支持其他Windows平台,如WinRT和WP)。
您确定错误是来自" request.Upload()"而不是来自" byte [] byteArray = System.IO.File.ReadAllBytes(newFilename);"或者" service.Files.Get(fileId).Fetch();"。你能附上确切的例外及其堆栈跟踪吗?
的Eyal