gpt4 book ai didi

c# - 如何只上传一个文件夹到谷歌云端硬盘

转载 作者:行者123 更新时间:2023-11-30 16:58:52 28 4
gpt4 key购买 nike

tl;dr:无法将空文件夹上传到 Google 云端硬盘。 Google API 不清楚,需要帮助。

我正在尝试创建一个可以将空文件夹上传到 Google 云端硬盘的程序。我查看了用于处理文件夹的 Google Drive API 并不清楚,所以如果你们能给出更清晰的答案,我们将不胜感激!

我尝试将源代码从 Google 切换为上传文件,即body.mimeType = "application/vnd.google-apps.folder";等等。我收到的错误是 UnauthorizedAccessException,因为您不能仅将文件夹转换为 byteArray。

我不太了解 C#,所以我不知道如何解决这个问题。如果您也可以包括代码片段,以便我可以想象将代码放在哪里,我也将不胜感激!

代码:

  Google.Apis.Drive.v2.Data.File folder = new Google.Apis.Drive.v2.Data.File();
folder.Title = My Folder;
folder.Description = desc.;
folder.MimeType = applicationvnd.google-apps.folder;
//Tried ^ that, didn't work

FilesResource.InsertMediaUpload request = service.Files.Insert(folder).Fetch();
Google.Apis.Drive.v2.Data.File file = service.Files.Insert(folder).Fetch();
File file = service.Files.Insert(folder).Fetch();
//Again, tried those but that didn't work either

File body = new File();
body.Title = "Document";
body.Description = "A test folder";
body.MimeType = "application/vnd.google-apps.folder";

byte[] byteArray = System.IO.File.ReadAllBytes("Folder");
//I know this doesn't work but had to try anyways
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);

FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "application/vnd.google-apps.folder");
request.Upload();

File file = request.ResponseBody;
Console.WriteLine(File id + file.Id);

我想这就是我尝试过的大部分方法,但都没有奏效。还有其他我试过的,但我已经删除了代码,因为它不起作用,所以没有必要重新找到它。

谢谢!

最佳答案

我解决了它(通过在另一个问题上找到答案):

代替文件 file = service.Files.Insert(body).Fetch(); (很多人说这样不行,),使用File file = service.Files.Insert(body).Execute();在这里投票(或者这个论坛有效)答案: Create folder on Google Drive .NET

代码:

File body = new File();
body.Title = "document title";
body.Description = "document description";
body.MimeType = "application/vnd.google-apps.folder";

// service is an authorized Drive API service instance
File file = service.Files.Insert(body).Execute();

//File body = new File();
//body.Title = "My document";
//body.Description = "A test document";
//body.MimeType = "text/plain";

//byte[] byteArray = System.IO.File.ReadAllBytes("document.txt");
//System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);

//FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain");
//request.Upload();

//File file = request.ResponseBody;

我把我注释掉的所有内容都放进去,因为我发现它有助于查看包含哪些代码和不包含哪些代码以使其正常工作。在此之前源代码中的所有内容(请参阅 Google 上的 quickstart C# 以供引用)完全相同。

希望这对遇到同样问题的其他人有所帮助!

关于c# - 如何只上传一个文件夹到谷歌云端硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656667/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com