当前位置: 代码迷 >> Java相关 >> java怎么利用SmbFile读取远程服务器的zip包中的文件。已经做到了远程读整个文件,怎么只读zip中的指定文件
  详细解决方案

java怎么利用SmbFile读取远程服务器的zip包中的文件。已经做到了远程读整个文件,怎么只读zip中的指定文件

热度:7882   发布时间:2013-02-25 21:45:23.0
java如何利用SmbFile读取远程服务器的zip包中的文件。已经做到了远程读整个文件,如何只读zip中的指定文件
jcifs.smb.SmbFile smbFile = new SmbFile("smb://root:admin@192.168.1.200/data.zip"); 
已经可以获取到data.zip,但是zip比较大下载到本地再用zipFile打开,速度比较慢。
如何能够在通过smb协议下载时,就只下载zip中指定的一个文件,假如已经知道zip包中的文件名。

------解决方案--------------------------------------------------------
Java code
SmbFile smbFile = new SmbFile(zipFile);            System.out.println("smbFile:--"+zipFile);            SmbFileInputStream in = new SmbFileInputStream(smbFile);            ZipInputStream zip = new ZipInputStream(in);            ZipEntry entry = null;            boolean exist = false;            while((entry = zip.getNextEntry()) != null)            {                System.out.println(entry.getName());                if(entry.getName().equals(filename)){                     response.setContentType("application/octet-stream");                     response.setHeader("Content-disposition", "attachment; filename=" + filename);                     OutputStream out = response.getOutputStream();                     byte[] b = new byte[1024];                      int n;                      while((n = zip.read(b)) != -1)                      {                         out.write(b, 0, n);                      }                      out.flush();                      out.close();                      exist = true;                      break;                }              }              zip.close();
  相关解决方案