使用 c# 从 google 驱动器下载文件而不使用 google API

Download file from google drive using c# without google API

根据要求,客户端提供了一个exe-(其中包含要下载的文件url)如果我们使用google api,我们需要与 exe 一起提供额外的参考。客户端不允许。

我使用webclient下载文件,但它下载的文档类型为HTML。我的要求是在不使用 google API 的情况下下载文件形式 google 驱动器 。有什么办法吗?

我试过下面的代码

 WebClient wb = new WebClient();          
 wb.DownloadFile("https://drive.google.com/file/d/0BzpAdEg-KyDjNVVSb0FBOWQ4V0k/view?usp=sharing", @"C:\TFS\test\test.pdf");

结果如下图

这应该对你有帮助。

以下是 google 驱动器的标准共享 url。

https://drive.google.com/file/d/FILE_ID/edit?usp=sharing

直接下载需要使用的格式是:

https://drive.google.com/uc?export=download&id=FILE_ID

这将 link 直接转到文件而不是当前示例中的驱动器视图。

因此,例如,如果您的分享 url 是 https://drive.google.com/file/d/ABCDEFG1234567/edit?usp=sharing

那么你的直接下载url就是https://drive.google.com/uc?export=download&id=ABCDEFG1234567

请注意,这仅适用于您自己上传的文件,这些文件不是使用 google 文档在驱动器本身中创建的(即文档、演示文稿、电子表格)。为此,格式会发生变化(如果需要,将更新答案)

编辑:

值得注意的是,如果文件位置发生变化,那么 url 和直接下载 link 也会发生变化,这意味着您需要更新它。