【发布时间】:2020-04-01 13:45:25
【问题描述】:
我正在尝试编写一个简单的示例,以允许我使用 VB.net 从我的 Google 驱动器下载文件
我尝试翻译 C# 代码,但遇到了一些似乎无法解决的错误。
任何帮助将不胜感激
这是我的代码
Private Sub Download()
Dim storageService = New StorageService(New BaseClientService.Initializer() With {.HttpClientInitializer = credential, .ApplicationName = "APP_NAME_HERE"})
Dim getRequest = storageService.Objects.[Get]("BUCKET_HERE", "OBJECT_HERE")
Using fileStream = New System.IO.FileStream("FILE_PATH_HERE", System.IO.FileMode.Create, System.IO.FileAccess.Write)
getRequest.MediaDownloader.ProgressChanged += Download_ProgressChanged()
getRequest.Download(fileStream)
End Using
End Sub
Private Shared Sub Download_ProgressChanged(ByVal progress As IDownloadProgress)
Console.WriteLine(progress.Status & " " + progress.BytesDownloaded)
End Sub
错误是 StorageService 无法识别,IDownloadProgress 也无法识别。
我拥有所有的 Include 语句,我可以在另一个代码区域使用我的凭据登录S
【问题讨论】:
-
如果您将插入符号放入,例如
IDownloadProgress,然后按ALT+ENTER,弹出窗口会提示有用的信息吗? -
要让它识别 IDownloadProgress,添加一个导入语句:Imports Google.Apis.Download
-
谢谢。这消除了 Idownload 问题,但给我留下了 2 个问题。 StorageService 无法识别,也没有任何有用的建议,并且 Using Filestream 下的行缺少 Download_ProgressChanged 调用的参数
-
对于
StorageService,您还需要Imports Google.Apis.Storage.v1。还;如果将getRequest.MediaDownloader.ProgressChanged传递回Download_ProgressChanged()函数会发生什么?那么getRequest.MediaDownloader.ProgressChanged += Download_ProgressChanged(getRequest.MediaDownloader.ProgressChanged)? -
谢谢。这解决了存储服务问题。但是您知道“BUCKET_HERE”和“OBJECT_HERE”中的内容吗?我已经设法通过暂时忽略 Progress 更改位来使代码正常工作(我认为这应该是一个处理程序),但我猜测存储桶和对象应该是什么,并且我的文件正在以零字节下载。
标签: vb.net google-drive-api google-api-dotnet-client