Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#.Net中将ParentReference从Google Drive API v2迁移到v3_C#_.net_Google Api_Google Drive Api - Fatal编程技术网

在C#.Net中将ParentReference从Google Drive API v2迁移到v3

在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

在阅读了谷歌在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
    {
        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}
};