C# 使用';时,文件夹不会显示在根目录下;根';在父母使用谷歌驱动器api文件列表时

C# 使用';时,文件夹不会显示在根目录下;根';在父母使用谷歌驱动器api文件列表时,c#,google-api,google-drive-api,google-api-dotnet-client,service-accounts,C#,Google Api,Google Drive Api,Google Api Dotnet Client,Service Accounts,当我在Q中的parents中设置“root”时,我只想查看根目录下的文件夹和文件,但我只能看到一个名为“Get started”的pdf文件。(我用的是C代码) 我的文件夹在哪里 但是当我在代码中按名称(例如name='Folder1')搜索时,我可以看到文件夹。 当我使用Api帮助网站()上名为“trythisapi”的Api测试时,我还可以看到文件夹输出 那么只有C代码不显示文件夹? 你能告诉我为什么它只显示文件而不显示文件夹吗 仅供参考:我使用服务帐户进行了身份验证,并使用了Google

当我在Q中的parents中设置“root”时,我只想查看根目录下的文件夹和文件,但我只能看到一个名为“Get started”的pdf文件。(我用的是C代码)

我的文件夹在哪里

但是当我在代码中按名称(例如name='Folder1')搜索时,我可以看到文件夹。 当我使用Api帮助网站()上名为“trythisapi”的Api测试时,我还可以看到文件夹输出

那么只有C代码不显示文件夹? 你能告诉我为什么它只显示文件而不显示文件夹吗


仅供参考:我使用服务帐户进行了身份验证,并使用了Google Drive v3 SDK。

如果您看到的唯一文件是“Get started”pdf文件,这肯定表明您正在使用服务帐户进行身份验证

服务帐户不是你的。把它想象成一个虚拟用户,它有自己的GoogleDrive帐户,默认情况下没有文件

选项:

  • 使用方法将文件上载到服务帐户
  • 与服务帐户共享您个人google drive帐户上的文件夹。您可以通过获取服务帐户的电子邮件地址并与之共享文件夹来完成此操作。注意:据我所知,您不能与任何人共享您的个人根文件夹

  • 提示:如果您允许服务帐户将文件上载到您的个人google drive帐户,请记住让服务帐户授予您的个人用户使用方法访问文件的权限,否则您的驱动器帐户上会有您无权访问的文件。

    我不知道这个问题是否得到了回答,所以我回答。我在使用
    name='root'
    时遇到了这个问题。它将文件和文件夹的列表返回给我,但有些文件和文件夹丢失了

    我在某处找到并用以下内容修改了“Q”字符串,现在它向我显示了正确的信息

    ('root' in parents)
    

    谢谢你的回复。正如您提到的,我无法将根文件夹共享到服务帐户。除了根文件夹,一切正常。如果我创建OAuth2.0客户机ID或API密钥而不是服务帐户,我想,我解决了这个问题。但它称之为GoogleWebAuthorizationBroker。。这也是一个问题。当使用OAuth 2.0客户端ID或API密钥而不是服务帐户时,是否有其他方法可以跳过GoogleWebAuthorizationBroker身份验证?API密钥用于公共数据,除非您可以将根目录设置为公共,否则无法工作。由于许多原因,这是一个不好的主意。Oauth2将要求您弹出身份验证窗口并请求用户访问。我建议您在您的驱动器帐户上创建一个目录(非根目录),然后将所有内容移动到该目录中。然后与服务帐户共享NotRoot,虽然很凌乱,但很有效。顺便说一句,为了好玩,我刚在Google上找到一个人,问他为什么我们不能共享root它的烦恼谢谢你的澄清。当我有新问题时,我会再次问你。当你得到答案,为什么我们不能共享root时,请在这里发布。@Srusti Thakkar这是我在Q中使用“root”时出现的问题