微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 MediaHttpDownloader 获取内容长度又名文件大小? drive file.getSize() 总是返回 null

如何解决如何从 MediaHttpDownloader 获取内容长度又名文件大小? drive file.getSize() 总是返回 null

我想从 Gdrive 下载文件。所以我使用驱动器 API v3 (java)。

这里是代码片段。

Drive.Files.Get request = driveService.files().get(fileId);
// Get the file Metadata
File downloadFile = request.execute();
Long fileSize = downloadFile.getSize(); // always returns null.

OutputStream out = new FileOutputStream(fileName);

request.getMediaHttpDownloader().setProgressListener(
                            new DriveDownloadProgressListener(messageQueue));
request.executeMediaAndDownloadTo(out);

这里 downloadFile.getSize() 总是返回 null。 有没有办法从 MediaHttpDownloader 获取文件大小?

解决方法

我必须自己在请求中添加必填字段。

喜欢这个


Drive.Files.Get request = driveService.files().get(fileId).setFields("size");
File file = request.execute(); // contains only size field.Other fields will be empty

然后执行并得到预期的响应(它只发送你自己设置的字段)

例如,如果您需要文件的名称和大小。

Drive.Files.Get request = driveService.files().get(fileId).setFields("name,size"); // name and size
File file = request.execute(); // contains only name and size field.Other fields will be empty(respective get methods will return null only)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。