2012-10-05 13 views
6

になります。結果はnullです。ドライブに保存されていないファイルがドライブに保存されている場合(downloadUrlがnullと異なる場合)、結果がnullになることがあります。Googleドライブ:GoogleドライブでgetFileSize()でファイルサイズを取得しようとすると、ファイルサイズがnull

Drive lService = new Builder(new NetHttpTransport(), new JacksonFactory(), lCredential).setApplicationName("TODO").build(); 
    FileList files = lService.files().list().execute(); 

    List<FileDTO> lResult = new ArrayList<FileDTO>(); 
    for (File lFile : files.getItems()) { 
     DriveFileDTO lFileDTO = new DriveFileDTO(); 
     lFileDTO.setName(lFile.getTitle()); 
     lFileDTO.setMimeType(lFile.getMimeType()); 
     lFileDTO.setSize(lFile.getFileSize()); // <-- FileSize = NULL 

     lFileDTO.setUrl(lFile.getDownloadUrl()); 

     lResult.add(lFileDTO); 
    } 

お手伝いできますか?

ありがとうございます! aGO!

答えて

0

のHttpResponseクラスのコールgetHeaders().GetContentLength()は(コードがmyurlがあなたのURLであると仮定し)暗黙的にnullではありません。たとえば、フォルダとGoogleスプレッドシート(​​単純なリンク)はnullになります。

これは、ドライブAPIのexlporerで確認できます。フィールドエディタでfilesizeとmimtypeを要求するだけです。ファイルサイズが要求されていても、上記のファイルタイプの応答にはキーと値のペアは含まれませんが、他のタイプの場合は返されます。

+0

この回答は間違っています。質問はfile.sizeを求めます。要求はファイルのリストのためのものです。したがって、1つではなく、多くのファイルサイズがあります。これが値を返す場合、ファイルのサイズではなく、返されるリストのサイズです。 – NameSpace

0

のOAuth 2.0プレイグラウンドで問題を再現してみてください:

https://developers.google.com/oauthplayground

OAuthの遊び場を使用することにより、我々は生の要求を送信し、APIでの問題がありますかどうかを確認することができます。 私はそれを自分自身で再生しようとしましたが、正しく動作しました。しかし、唯一のファイルサイズがあるファイルに対して、Googleドライブからファイルリストのデフォルトの要求は、ファイルサイズが含まれます

HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(myurl)).execute(); 
Log.v("abc","file size is : " + resp.getHeaders().getContentLength()); 
+0

ご協力いただきありがとうございます。 OAuthプレイグラウンドを使用すると、ファイルサイズが表示されます。 GoogleドライブAPIで同じ操作を行うと、サイズがNULLになります – aGO

+0

Javaクライアントライブラリの最新バージョンを使用していますか?問題は1つのファイルでのみ発生しますか?もしそうなら、影響を受けるファイルの1つを共有できますか?私はまだ私のテストアカウントでそれを再現することはできません。 –

+0

OAuthプレイグラウンドによるテストが終わったら、それはうまくいっています...私はそれを説明することはできません。今私は最新のJavaクライアントライブラリを使用しています。私が問題を再現するなら、私はそれを書くでしょう。どうもありがとう! – aGO

関連する問題