Google Drive API上传到C#中的共享驱动器

问题描述 投票:0回答:1

我正在使用此代码将文件上传到Google云端硬盘,并且正确地将...上传到“我的云端硬盘”的根目录。我需要将其上传到共享驱动器_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个回答
0
投票

虽然我不知道它是否会真正起作用,但这将解决NPE:

Parents = new[] { _driveId }

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

© www.soinside.com 2019 - 2024. All rights reserved.