2013-03-26 4 views
3

Я пытаюсь выяснить коды для Visual Basic .net 2008 программы (WinForms), которые могут загружать и загружать некоторые файлы в мою учетную запись Google и обратно.Загрузите и загрузите на Google Диск с помощью формы VB.NET

Кто-нибудь может мне помочь?

+0

Что вы пробовали? Вы должны были прочитать документацию, я уверен, что Google предоставил и попытался что-то сделать, прежде чем приходить сюда. – Yatrix

+0

Yatrix, я хорошо провел время, здесь и в Google. Я просто любитель, который знает о программировании. Если я здесь, потому что мне нужна помощь. –

+2

Этот сайт ориентирован на людей, которые знают, как программировать. Он предназначен для ответа на конкретные вопросы, а не для того, чтобы научить кого-то программировать. Желаю удачи, но сначала вы можете получить основы. – Yatrix

ответ

0

Пожалуйста, посмотрите образцы .NET, найденные на веб-сайте SDK Google Диска, который приведен ниже.

Google Drive SDK Documentation

Надеется, что это помогает.

+3

Это действительно помогло бы, если бы вы могли включить соответствующий раздел документации здесь в самом ответе. – ChrisF

+2

Не полезно, поскольку документы не поддерживают VB.Net – rheitzman

+2

Правда - однако конвертер не слишком хорошо справляется с примером быстрого запуска. Это путает инициализацию строки в строке «service», добавляя переменную «Key», которая запутывает (просто удалите «Key» и оставьте периоды.) Также образец использует «var» вместо неявных типов, которые приводят к путанице. Я бы хотел, чтобы Google потратил немного усилий на поддержку VB.Net-версий образцов .Net для всех своих API. C# и VB.Net значительно отличаются от этого типа кода. – rheitzman

4

Потребовалось много времени, чтобы найти код, который работал, и я никогда не нашел ничего, что было написано на vb.net. Все, что я нашел, было написано для C#. Ну, после того, как я сделал конверсию, я смог заставить некоторые вещи работать. Однако это было очень мало, и мне пришлось выяснить остальное. Таким образом, чтобы сделать жизнь других людей намного проще здесь работает vb.net кода для привода v2 & OAuth 2.0:

Imports System.Threading 
    Imports System.Threading.Tasks 

    Imports Google 
    Imports Google.Apis.Auth.OAuth2 
    Imports Google.Apis.Drive.v2 
    Imports Google.Apis.Drive.v2.Data 
    Imports Google.Apis.Services 

    Imports Google.Apis.Auth 
    Imports Google.Apis.Download 

    'Dev Console: 
    'https://console.developers.google.com/ 

    'Nuget command: 
    'Install-Package Google.Apis.Drive.v2 

    Private Service As DriveService = New DriveService 

    Private Sub CreateService() 
    If Not BeGreen Then 
     Dim ClientId = "your client ID" 
     Dim ClientSecret = "your client secret" 
     Dim MyUserCredential As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With {.ClientId = ClientId, .ClientSecret = ClientSecret}, {DriveService.Scope.Drive}, "user", CancellationToken.None).Result 
     Service = New DriveService(New BaseClientService.Initializer() With {.HttpClientInitializer = MyUserCredential, .ApplicationName = "Google Drive VB Dot Net"}) 
    End If 
End Sub 


    Private Sub UploadFile(FilePath As String) 
    Me.Cursor = Cursors.WaitCursor 
    If Service.ApplicationName <> "Google Drive VB Dot Net" Then CreateService() 

    Dim TheFile As New File() 
    TheFile.Title = "My document" 
    TheFile.Description = "A test document" 
    TheFile.MimeType = "text/plain" 

    Dim ByteArray As Byte() = System.IO.File.ReadAllBytes(FilePath) 
    Dim Stream As New System.IO.MemoryStream(ByteArray) 

    Dim UploadRequest As FilesResource.InsertMediaUpload = Service.Files.Insert(TheFile, Stream, TheFile.MimeType) 

    Me.Cursor = Cursors.Default 
    MsgBox("Upload Finished") 
End Sub 

    Private Sub DownloadFile(url As String, DownloadDir As String) 
    Me.Cursor = Cursors.WaitCursor 
    If Service.ApplicationName <> "Google Drive VB Dot Net" Then CreateService() 

    Dim Downloader = New MediaDownloader(Service) 
    Downloader.ChunkSize = 256 * 1024 '256 KB 

    ' figure out the right file type base on UploadFileName extension 
    Dim Filename = DownloadDir & "NewDoc.txt" 
    Using FileStream = New System.IO.FileStream(Filename, System.IO.FileMode.Create, System.IO.FileAccess.Write) 
     Dim Progress = Downloader.DownloadAsync(url, FileStream) 
     Threading.Thread.Sleep(1000) 
     Do While Progress.Status = TaskStatus.Running 
     Loop 
     If Progress.Status = TaskStatus.RanToCompletion Then 
      MsgBox("Downloaded!") 
     Else 
      MsgBox("Not Downloaded :(") 
     End If 
    End Using 
    Me.Cursor = Cursors.Default 
End Sub 

Если вы не знаете URL, чтобы загрузить файл, то вы можете использовать этот код получить один:

Dim Request = Service.Files.List() 
    Request.Q = "mimeType != 'application/vnd.google-apps.folder' and trashed = false" 
    Request.MaxResults = 2 
    Dim Results = Request.Execute 
    For Each Result In Results.Items 
     MsgBox(Result.DownloadUrl & vbCrLf & Result.Title & vbCrLf & Result.OriginalFilename) 
    Next 

Я устал и не заботятся, чтобы очистить код на данный момент, однако это работает и вы начали. Счастливое программирование!

Смежные вопросы