簡體   English   中英

使用 V.net Express 的 Google 雲端硬盤

[英]Google Drive with VBnet Express

我在使用 VB.net Express 2012 連接到我的 Google 雲端硬盤時遇到問題。它支持嗎?

Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Drive.v2
Imports Google.Apis.Drive.v2.Data
Imports Google.Apis.Services
Imports Google.Apis.Util.Store
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Threading
Imports System.Threading.Tasks

Namespace DriveQuickstart
    Class Program
        Shared Scopes As String() = {DriveService.Scope.DriveReadonly}
        Shared ApplicationName As String = "Drive API .NET Quickstart"

        Private Shared Sub Main(args As String())
            Dim credential As UserCredential

            Using stream = New FileStream("client_secret.json", FileMode.Open, FileAccess.Read)
                Dim credPath As String = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)
                credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart")

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, New FileDataStore(credPath, True)).Result
                Console.WriteLine(Convert.ToString("Credential file saved to: ") & credPath)
            End Using

            ' Create Drive API service.
            Dim service = New DriveService(New BaseClientService.Initializer() With { _
                Key .HttpClientInitializer = credential, _
                Key .ApplicationName = ApplicationName _
            })

            ' Define parameters of request.
            Dim listRequest As FilesResource.ListRequest = service.Files.List()
            listRequest.MaxResults = 10

            ' List files.
            Dim files As IList(Of Google.Apis.Drive.v2.Data.File) = listRequest.Execute().Items
            Console.WriteLine("Files:")
            If files IsNot Nothing AndAlso files.Count > 0 Then
                For Each file As var In files
                    Console.WriteLine("{0} ({1})", file.Title, file.Id)
                Next
            Else
                Console.WriteLine("No files found.")
            End If
            Console.Read()

        End Sub
    End Class
End Namespace

我在失敗的控制台中運行 Nuget,所以我不得不手動將 DLL 復制到項目並將它們添加為引用,這似乎作為Imports google.*不再出錯,但我在代碼中遇到錯誤.

在此處輸入圖像描述

有什么幫助嗎?

更新

我認為問題可能是我在https://developers.google.com/drive/web/quickstart/do.net上使用 v.net express 2012 它說:先決條件

要運行此快速入門,您需要:

Visual Studio 2013 或更高版本。

有什么解決辦法嗎?

更新2

我不再需要此代碼,因為我將使用不同的方法如果其他人遇到相同問題,請隨時回答

對於var錯誤,它看起來像c#。 由於它已導入,因此請替換為Google.Apis.Drive.v2.Data.File或僅替換為File。

用Google.Apis.Util.Store.FileDataStore替換Filedatastore

您沒有正確初始化“服務”。 同樣,這看起來更像c#。 使用類似的東西:Dim service as new ...參見: https : //msdn.microsoft.com/en-us/library/bb531244.aspx

    Imports Google.Apis.Auth.OAuth2
    Imports Google.Apis.Drive.v2
    Imports Google.Apis.Drive.v2.Data
    Imports Google.Apis.Services
    
    Public Class genel
     Dim Service As DriveService = New DriveService
     Dim UploadRequest As FilesResource.InsertMediaUpload
     Dim wrtr As System.IO.StreamWriter
        Public Sub CreateService(cloudid As String, cloudsecret As String)
    
            Dim ClientId = cloudid
            Dim ClientSecret = cloudsecret
            Dim MyUserCredential As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With {.ClientId = ClientId, .ClientSecret = ClientSecret}, {DriveService.Scope.Drive}, "XXX", CancellationToken.None).Result
            Service = New DriveService(New BaseClientService.Initializer() With {.HttpClientInitializer = MyUserCredential, .ApplicationName = "XXXXXXX"})
        End Sub
    
    Public Function UploadFile(FilePath As String)
    
            Dim TheFile As New Data.File()
    
            TheFile.Title = IO.Path.GetFileName(FilePath)
            TheFile.Description = "Uploaded File From My Data"
            If sonayir = False Then TheFile.Parents = New List(Of ParentReference) From {New ParentReference() With {.Id = folderID}}
    
            Dim ByteArray As Byte() = System.IO.File.ReadAllBytes(FilePath)
            Dim Stream As New System.IO.MemoryStream(ByteArray)
    
            Try
                UploadRequest = Service.Files.Insert(TheFile, Stream, TheFile.MimeType)
                UploadRequest.Upload()
    
                Stream.Close()
                Return snc
            Catch ex As Exception
                Return ex.Message
            End Try
        End Function
        Function CreateFolder(folder As String)
            Try
                Dim dosya As File = New File()
                dosya.Title = folder
                dosya.MimeType = "application/vnd.google-apps.folder"
    
                Dim folder_create = Service.Files.Insert(dosya)
                Dim snc = folder_create.Execute()
                Return snc.Id.ToString
            Catch ex As Exception
                Return ex.Message
            End Try
        End Function
        Function DeleteFileorFolder(id As String)
            Dim snc
            Try
                snc = Service.Files.Delete(id).Execute()
            Catch ex As Exception
                Return ex.Message
            End Try
            Return snc
        End Function
        Sub TrashEmpty()
            Try
                Dim mn = Service.Files.EmptyTrash 
                mn.Execute()
            Catch ex As Exception
            MsgBox(ex.Message)
            End Try
        End Sub
End Class

利用;

Dim gn As New genel

創建文件夾

folderId = gn.CreateFolder("FolderName")

上傳文件

fileId = gn.UploadFile("FileName") 

刪除文件或文件夾

gn.DeleteFileorFolder(folderId)

垃圾清空

gn.TrashEmpty()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM