在C#.Net中将ParentReference从Google Drive API v2迁移到v3
在阅读了谷歌在Gdrive.v3 SDK上的迁移信息后,我仍然不确定如何正确设置文件的ParentReference(到根文件夹)。目前在v2中,这是通过以下方式完成的:在C#.Net中将ParentReference从Google Drive API v2迁移到v3,c#,.net,google-api,google-drive-api,C#,.net,Google Api,Google Drive Api,在阅读了谷歌在Gdrive.v3 SDK上的迁移信息后,我仍然不确定如何正确设置文件的ParentReference(到根文件夹)。目前在v2中,这是通过以下方式完成的: private string UploadToGDrive( Google.Apis.Drive.v3.DriveService service, string uploadFile, string parent) { var body = new Google.Apis.Drive.v3.Data.File
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;
}
private string UploadToGDrive(Google.api.Drive.v3.DriveService服务、string uploadFile、string parent)
{
var body=new Google.api.Drive.v3.Data.File
{
Name=Path.GetFileName(上传文件),
Description=上传文件,
MimeType=GetMimeType(上传文件),
Parents=新列表{newparentreference{Id=parent}}
};
}
私有字符串GetMimeType(字符串文件名)
{
var mimeType=“应用程序/未知”;
var extension=Path.GetExtension(文件名);
if(extension==null)返回mimeType;
var ext=extension.ToLower();
var regKey=Registry.ClassesRoot.OpenSubKey(ext);
if(regKey?.GetValue(“内容类型”)!=null)返回mimeType;
if(regKey!=null)mimeType=regKey.GetValue(“内容类型”).ToString();
返回mimeType;
}
如文件中所述-:
要在特定文件夹中插入文件,请在文件的parents
属性中指定正确的ID,如图所示:
var folderId=“0BwwA4oUTeiV1TGRPeTVjaWRDY1E”;
var fileMetadata=新文件()
{
Name=“photo.jpg”,
父母=新名单
{
福德里德
}
};
FileResource.CreateMediaUpload请求;
使用(var stream=new System.IO.FileStream(“files/photo.jpg”,
System.IO.FileMode.Open)
{
请求=driveService.Files.Create(
文件元数据,流,“图像/jpeg”);
request.Fields=“id”;
request.Upload();
}
var file=request.ResponseBody;
Console.WriteLine(“文件ID:+File.ID”);
希望这能帮上忙。我一定监督过这件事。。。就我而言,这只是意味着替换
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.api.Drive.v3.Data.File
{
Name=Path.GetFileName(上传文件),
Description=上传文件,
MimeType=GetMimeType(上传文件),
Parents=新列表{newparentreference{Id=parent}}
};
与
var body=new Google.api.Drive.v3.Data.File
{
Name=Path.GetFileName(上传文件),
Description=上传文件,
MimeType=GetMimeType(上传文件),
Parents=新列表{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}}
};
var body = new Google.Apis.Drive.v3.Data.File
{
Name = Path.GetFileName(uploadFile),
Description = uploadFile,
MimeType = GetMimeType(uploadFile),
Parents = new List<string> {parent}
};