【问题标题】:Migrate ParentReference from Google Drive Apis v2 to v3 in C#.Net在 C#.Net 中将 ParentReference 从 Google Drive API v2 迁移到 v3
【发布时间】:2017-05-14 14:02:19
【问题描述】:

在此处阅读 Gdrive.v3 SDK 上的 Google 迁移信息后:https://developers.google.com/drive/v3/web/migration,我仍然不确定如何正确设置文件的 ParentReference(到根文件夹)。目前在 v2 中,这是通过以下方式完成的:

private string UploadToGDrive( Google.Apis.Drive.v3.DriveService service, string uploadFile, string parent)
{
    var body = new Google.Apis.Drive.v3.Data.File
    {
        Name = Path.GetFileName(uploadFile),
        Description = uploadFile,
        MimeType = GetMimeType(uploadFile),
        Parents = new List<ParentReference> {new ParentReference {Id = parent}}
    };
}

private string GetMimeType(string fileName)
{
    var mimeType = "application/unknown";
    var extension = Path.GetExtension(fileName);
    if (extension == null) return mimeType;
    var ext = extension.ToLower();
    var regKey = Registry.ClassesRoot.OpenSubKey(ext);
    if (regKey?.GetValue("Content Type") != null) return mimeType;
    if (regKey != null) mimeType = regKey.GetValue("Content Type").ToString();
    return mimeType;
}

【问题讨论】:

    标签: c# .net google-api google-drive-api


    【解决方案1】:

    如文档中所述 - Inserting a file in a folder:

    要在特定文件夹中插入文件,请在文件的parents 属性中指定正确的 ID,如下所示:

    var folderId = "0BwwA4oUTeiV1TGRPeTVjaWRDY1E";
    var fileMetadata = new File()
    {
        Name = "photo.jpg",
        Parents = new List<string>
        {
            folderId
        }
    };
    FilesResource.CreateMediaUpload request;
    using (var stream = new System.IO.FileStream("files/photo.jpg",
        System.IO.FileMode.Open))
    {
        request = driveService.Files.Create(
            fileMetadata, stream, "image/jpeg");
        request.Fields = "id";
        request.Upload();
    }
    var file = request.ResponseBody;
    Console.WriteLine("File ID: " + file.Id);
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      这一定是我监督的......这只是在我的情况下意味着替换

      var body = new Google.Apis.Drive.v3.Data.File
      {
          Name = Path.GetFileName(uploadFile),
          Description = uploadFile,
          MimeType = GetMimeType(uploadFile),
          Parents = new List<ParentReference> {new ParentReference {Id = parent}}
      };
      

      var body = new Google.Apis.Drive.v3.Data.File
      {
          Name = Path.GetFileName(uploadFile),
          Description = uploadFile,
          MimeType = GetMimeType(uploadFile),
          Parents = new List<string> {parent}
      };
      

      (我已将此添加为答案,因为它渴望发表评论)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2013-12-30
        相关资源
        最近更新 更多