C# : How to Upload File to a Specific Folder using Google Drive API v3 - Windows Console Application

Viewed 2355

I am trying to upload an image to my google drive using c#. This code works fine if i want to upload to root directory. But i want to upload my images to specific folder in my Drive. Suggestion Needed.

private static void UploadBasicImage(string file_path,DriveService service)
    {
        var fileMetadata = new Google.Apis.Drive.v3.Data.File();
        fileMetadata.Name = Path.GetFileName(path);
        fileMetadata.MimeType = "image/png";
        FilesResource.CreateMediaUpload request;
        using (var stream = new System.IO.FileStream(path,System.IO.FileMode.Open))
        {
            request = service.Files.Create(fileMetadata, stream, fileMetadata.MimeType);
            request.Fields = "id";
            request.Upload();
        }
        var file = request.ResponseBody;
    }
1 Answers

Here is the Solution I just Figured Out:
Full Details are Here

        public static void FileUploadInFolder(string folderId, string path, DriveService service)
    {
        var FileMetaData = new Google.Apis.Drive.v3.Data.File()
        {
            Name = Path.GetFileName(path),
            MimeType = GetMimeType(path),
            //id of parent folder 
            Parents = new List<string>
                {
                    folderId
                }
        };
        FilesResource.CreateMediaUpload request;
        //create stream and upload
        using (var stream = new System.IO.FileStream(path, System.IO.FileMode.Open))
        {
            request = service.Files.Create(FileMetaData, stream, FileMetaData.MimeType);
            request.Fields = "id";
            request.Upload();
        }
        var file1 = request.ResponseBody;
    }
Related