【问题标题】:Google Drive API Upload to Shared Drive in C#Google Drive API 上传到 C# 中的共享驱动器
【发布时间】:2020-04-22 02:21:38
【问题描述】:

我正在使用此代码将文件上传到 Google Drive,并且它正确地将 ... 上传到 My Drive 的根目录。我需要它上传到共享驱动器_driveId。我在这里做错了什么?

    public string Add(GoogleDriveItem item)
    {
        FilesResource.CreateMediaUpload request;
        using (FileStream stream = new FileStream(item.LocalPath,
            FileMode.Open))
        {
            using (MemoryStream memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                Google.Apis.Drive.v3.Data.File fileMetadata = new Google.Apis.Drive.v3.Data.File
                {
                    Name = Path.GetFileName(item.LocalPath),
                    MimeType = item.ContentType,
                    DriveId = _driveId,
                    TeamDriveId = _driveId
                };
                request = _service.Files.Create(
                    fileMetadata, memoryStream, item.ContentType);
                request.Fields = "id";
                request.SupportsTeamDrives = true;
                request.SupportsAllDrives = true;
                request.Upload();
            }
        }
        Google.Apis.Drive.v3.Data.File file = request.ResponseBody;
        return file.Id;
    }

我尝试将Parents = { _driveId} 添加到fileMetaData 的属性中,但随后出现空引用异常。 :(

【问题讨论】:

    标签: c# google-drive-api


    【解决方案1】:

    虽然我不知道它是否真的有效,但这将修复 NPE:

    Parents = new[] { _driveId }
    

    默认情况下,REST 客户端库基本上不会创建空列表,因此 Parents 在您为其赋值之前为空 - 但它只是一个 IList<string>,因此数组应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多