質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3747閲覧

[VB.net]Google Driveにファイルを上書きアップロードする方法

BOST

総合スコア13

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/11/09 12:47

編集2018/11/09 16:25

前提・実現したいこと

テキストファイルをGoogle Driveにアップロードするプログラムを作成しています。
アップロードには以下のコードを用いたのですが、同名ファイルが新規ファイルとしてアップロードされてしまいます。(Drive内が同名ファイルだらけになります。)

ファイルをアップロードしたときDrive内に
同名ファイルがなければ新規アップロード
同名ファイルがあれば上書きアップロード
とするにはどうすればいいのでしょうか?

よろしくお願い致します。

発生している問題・エラーメッセージ

Google Driveへの上書きアップロードができない

該当のソースコード

VB.net

1Private Sub createservice() 2Dim clientid = "取得したもの" 3Dim clientsercret = "取得したもの" 4 5Dim uc As UserCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(New ClientSecrets() With {.ClientId = clientid, .ClientSecret = clientsercret}, {DriveService.Scope.Drive}, "user", CancellationToken.None).Result 6service = New DriveService(New BaseClientService.Initializer() With {.HttpClientInitializer = uc, .ApplicationName = "Google Drive VB Dot NET"}) 7End Sub 8 9 10Private Sub uploadfile(ByVal filepath As String) 11If service.ApplicationName <> "Google Drive VB Dot NET" Then createservice() 12Dim thefile As New File 13thefile.Title = "Demo" 14thefile.Description = "A demo Document" 15thefile.MimeType = "text/plain" 16 17Dim bytearray As Byte() = System.IO.File.ReadAllBytes(filepath) 18Dim stream As New System.IO.MemoryStream(bytearray) 19Dim uploadrequest As Google.Apis.Drive.v2.FilesResource.InsertMediaUpload = service.Files.Insert(thefile, stream, thefile.MimeType) 20uploadrequest.Upload() 21Dim file As File = uploadrequest.ResponseBody 22End Sub 23 24 25Sub main() 26uploadfile("テキストファイルの場所") 27End Sub

補足情報(FW/ツールのバージョンなど)

VisualBasic2017
Google Drive API.v2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

リファレンスをパッと見ただけですが、更新の場合はFilesResource.UpdateMediaUploadを使用するのではないでしょうか?

流し読みで、v3のサンプルなので使えないかもしれませんが、こちらが参考になるかもしれません。

投稿2018/11/10 00:03

YAmaGNZ

総合スコア10242

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BOST

2018/11/11 07:08 編集

ご回答ありがとうございます。 ご指摘通りFilesResource.UpdateMediaUploadを用いて該当箇所を以下のように書き換えたのですが、やはり別ファイルとしてアップロードされてしまいます。 Private Sub uploadfile(ByVal filepath As String) If service.ApplicationName <> "Google Drive VB Dot NET" Then createservice() Dim thefile As New File thefile.Title = "Demo" thefile.Description = "A demo Document" thefile.MimeType = "text/plain" Dim bytearray As Byte() = System.IO.File.ReadAllBytes(filepath) Dim fileid As String = "ファイルのID" Dim stream As New System.IO.MemoryStream(bytearray) Dim uploadrequest As Google.Apis.Drive.v2.FilesResource.UpdateMediaUpload = service.Files.Update(thefile, fileid, stream, thefile.MimeType) uploadrequest.Upload() Dim file As File = uploadrequest.ResponseBody また、C#の知識がないため参考URLのサンプルは試せていません。 こちらに関してはゆっくりと解読させていただきます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問