0

私は C# .Net で作業しており、Google ドライブで作成したフォルダーに画像をアップロードできるようにしたいと考えています。以下のコードを見てください。このコードでフォルダの作成と画像のアップロードは別々にできますが、作成したフォルダに画像をアップロードするコードを書きたいです

Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File();
body.Title = "My first folder";
body.Description = "document description";
body.MimeType = "application/vnd.google-apps.folder";

// service is an authorized Drive API service instance
Google.Apis.Drive.v2.Data.File file = service.Files.Insert(body).Fetch();

Google.Apis.Drive.v2.Data.File body1 = new Google.Apis.Drive.v2.Data.File();
body1.Title = "My first folder";
body1.MimeType = "image/jpeg";

//------------------------------------------

byte[] byteArray = System.IO.File.ReadAllBytes("Bluehills.jpg");
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);

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

Google.Apis.Drive.v2.Data.File file1 = request.ResponseBody;
Console.WriteLine("File id: " + file1.Id);
Console.WriteLine("Press Enter to end this process.");
Console.ReadLine();
4

1 に答える 1

3

特定のフォルダにファイルを挿入するには、ファイルのparentプロパティに正しいIDを指定してください

https://developers.google.com/drive/folder

file.Idの親として使用しますbody

fileand file1and bodyandのために、どれがフォルダーで、どのファイルがファイルであるかを編集するbody1のは非常に困難ですが、body1の親であるべきはfile1.idであると思います

編集 2

if (!String.IsNullOrEmpty(file1.id)) {
    body1.Parents = new List<ParentReference>()
       { new ParentReference() {Id = file1.id} };
}

3 つの完全なコードを編集します。

Google.Apis.Drive.v2.Data.File folder = new Google.Apis.Drive.v2.Data.File();
folder.Title = "My first folder";
folder.Description = "folder document description";
folder.MimeType = "application/vnd.google-apps.folder";

// service is an authorized Drive API service instance
Google.Apis.Drive.v2.Data.File file = service.Files.Insert(folder).Fetch();

Google.Apis.Drive.v2.Data.File theImage = new Google.Apis.Drive.v2.Data.File();
theImage.Title = "My first image";
theImage.MimeType = "image/jpeg";
theImage.Parents = new List<ParentReference>()
   { new ParentReference() {Id = file.Id} };

byte[] byteArray = System.IO.File.ReadAllBytes("Bluehills.jpg");
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);

FilesResource.InsertMediaUpload request = service.Files.Insert(theImage, stream, "image/jpeg");
request.Upload();

Google.Apis.Drive.v2.Data.File imageFile = request.ResponseBody;
Console.WriteLine("File id: " + imageFile.Id);
Console.WriteLine("Press Enter to end this process.");
Console.ReadLine();
于 2012-10-23T09:59:45.270 に答える