除ID和名称外,所有文件属性均为null。

时间:2019-06-18 14:49:42

标签: c# google-api google-drive-api google-api-dotnet-client

将文件上传到我的移动应用程序的appData文件夹然后下载后,如果您查看Google.Apis.Drive.v3.Data.File属性,则所有属性都为null,但Id和Name属性除外。我需要知道服务器修改的DateTime,也许是最后一个客户端修改的DateTime,因为它可以从其他设备上载到Google Drive应用程序文件夹。如何获取这些属性或在上传时进行设置,以便在下一次下载时可以与当前客户端文件进行比较?

我已经包含了我正在使用的上传代码,该代码非常适合上传。我尝试在代码的fileMetadata部分中将ModifiedTime设置为DateTime.UtcNow,但是然后request.ResponseBody返回为空。

            var fileMetadata = new Google.Apis.Drive.v3.Data.File()
            {
                Name = filename,
                Parents = new List<string>()
                {
                    "appDataFolder"
                }
            };

            FilesResource.CreateMediaUpload request;
            using (var stream = fileContent.AsMemoryStream())
            {
                request = service.Files.Create(fileMetadata, stream, MimeTypeLookup.GetMimeType(filename));
                request.Fields = "id";
                request.Upload();
            }

            var file = request.ResponseBody;
            Console.WriteLine("File ID: " + file.Id);

我希望看到一个request.ResponseBody返回Google.Apis.Drive.v3.Data.File,就像上传时未设置任何日期一样。谁能解决这个问题?我需要使用DateTime,以便可以与当前本地文件进行比较。

史蒂夫

1 个答案:

答案 0 :(得分:2)

您已指定只需要id字段

request.Fields = "id";

尝试

request.Fields = "*";

这会将所有字段返回给您。您可以使用它,但是您只想返回所需的数据。您可以在这里https://developers.google.com/drive/api/v3/performance#partial-response

了解更多信息