我目前正在开发一个原生的Android应用程序,并尝试访问文档服务器上的一些图片。对于通信,我正在使用OpenCMIS
库。
我的目标是下载图片并将其保存到设备的内部存储空间或SD卡中。我的问题是,是否有可能将文件下载为压缩存档,例如.zip,并在设备上提取此文件?因此,我不想单独下载大量文件,而是要下载一个大文件。
这是OpenCMIS
能够做到的吗?或者这取决于文件服务器?我正在使用SAP Mobile Documents并知道我可以通过浏览器从Web界面下载整个文件夹作为.zip,但我还没有在自定义Android客户端中找到可能的内容。
任何提示或解释都表示赞赏,提前谢谢!
答案 0 :(得分:1)
所以我使用了help from Florian Müller。
对于任何有兴趣的人,在本机Android应用程序中从SAP Mobile Document Server下载文件夹作为.zip存档的最终代码如下所示:
public void downloadAsZip(Session session, Folder folder, File destination){
ContentStream zipStream = session.getContentStream(folder, "sap:zipRendition", null, null);
InputStream inputStream = zipStream.getStream();
try {
File file = new File(destination, folder.getName()+".zip");
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int bufferLength = 0;
while ((bufferLength = inputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, bufferLength);
}
fileOutputStream.close();
inputStream.close();
}
catch(IOException e){
Log.e(TAG, "An error occurred: "+e.getMessage());
}
}