6

GoogleドライブでgetFileSize()を使用してファイルサイズを取得しようとすると、結果はnullになります。ファイルがドライブに保存されていないが、ファイルがドライブに保存されている場合、結果がnullになる可能性があることを知っています(downloadUrlは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);
    }

手伝って頂けますか?

ありがとう!前!

4

3 に答える 3

1

Googleドライブからのファイルリストのデフォルトのリクエストにはファイルサイズが含まれますが、ファイルサイズが暗黙的にnullではないファイルに対してのみです。たとえば、フォルダとGoogleスプレッドシート(​​単なるリンク)はnullになります。

これは、DriveAPIexporerで確認できます。フィールドエディタでファイルサイズとmimtypeをリクエストするだけです。キーと値のペアは、ファイルサイズが要求された場合でも、言及されたファイルタイプの応答には含まれませんが、他のタイプの場合は返されます。

于 2014-11-12T10:14:21.747 に答える
0

OAuth2.0Playgroundで問題を再現してみてください。

https://developers.google.com/oauthplayground

OAuth Playgroundを使用することで、生のリクエストを送信し、APIに問題があるかどうかを確認できます。自分で再現してみたところ、正常に動作しました。

于 2012-10-05T23:49:03.483 に答える
-1

getHeaders().GetContentLength()HttpResponseクラスを呼び出します(コードmyurlはあなたのURLを想定しています):

HttpResponse resp = service.getRequestFactory().buildGetRequest(new GenericUrl(myurl)).execute();
Log.v("abc","file size is : " + resp.getHeaders().getContentLength());
于 2013-05-29T17:36:16.077 に答える