C# GoogleDrive API V3 列出文件,属性“parents”始终为空

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

我试图从文件父值中找出某些文件夹的内容。我正在使用 API 版本三。由于某种原因,Google 不允许知道“parents”属性,总是返回 null。

可能是什么原因?我以为这是一个有限的“范围”参数,但是扩展权限,结果是一样的。

所以我连接:

                string[] scopes = new string[] { DriveService.Scope.Drive, DriveService.Scope.DriveFile, DriveService.Scope.DriveMetadata, DriveService.Scope.DriveAppdata};
                var clientId = "id";      // From https://console.developers.google.com
                var clientSecret = "secret";          // From https://console.developers.google.com
                var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets
                {
                    ClientId = clientId,
                    ClientSecret = clientSecret
                },
                scopes,
                Environment.UserName,
                CancellationToken.None,
                new FileDataStore("MyAppsToken111")).Result;

                DriveService service = new DriveService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "MyAppName",
                });

所以我得到文件例如:

            var list = service.Files.List().Execute().Files;

            foreach (var file in list)
            {
                Console.WriteLine(file.Parents == null);//always: true == (file.Parents == null)
            }

我确信至少有一个文件必须具有非空父属性。你能告诉我我错过了什么吗?

SCREEN FILE ITEM FROM LIST

c# .net api google-drive-api flysystem-google-drive
2个回答
2
投票

尝试像这样设置请求:

FilesResource.ListRequest listRequest = service.Files.List();
listRequest.Fields = "*";

之后你可以使用foreach:

var list = listRequest.Execute().Files;


0
投票

如果您出于某种原因不需要所有字段,您可以在文件字段中添加“父项”。 就像这样。 listRequest.Fields =“nextPageToken,文件(id,名称,mimeType,parents)”;

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