【问题标题】:Enumerating FTPFile from FTP using ZipFile使用 ZipFile 从 FTP 枚举 FTPFile
【发布时间】:2015-08-14 19:06:36
【问题描述】:

我通常在没有 FTP 的情况下读取 ZipFiles 的方法如下:

private void getLogFromZip(File logZip){
  ZipFile zf = new ZipFile(logZip);
  Enumeration<?> entries = zf.entries();
  while (entries.hasMoreElements()) {
    ZipEntry ze = (ZipEntry) entries.nextElement();
  //do something with entry    
}

现在我已经连接到一个 FTP 服务器,检索一个 FTPFile 并使用它让事情变得很困难:

private void getLogFromZip(FTPFile logZip){
  ZipFile zf = new ZipFile(logZip.getName()); //here's the problem
  Enumeration<?> entries = zf.entries();
  while (entries.hasMoreElements()) {
    ZipEntry ze = (ZipEntry) entries.nextElement();
  //do something with entry    
}

直接在第 1 行我得到这个:

java.io.FileNotFoundException: logger_150510_092333.zip (System cannot find the file? specified)

有什么解决方法?如何指定路径以便它知道在哪里查找 zip?

非常感谢!

【问题讨论】:

    标签: java apache ftp apache-commons-net


    【解决方案1】:

    您可能必须先从 FTP 服务器获取文件,然后才能访问它。 FTPFile 实例似乎只是指向实际文件的链接。

    查看示例:http://www.mysamplecode.com/2012/03/apache-commons-ftpclient-java-example_16.html

    【讨论】:

    • 有没有办法不从 FTP 下载文件,而是在某种(虚拟)空间中工作?
    • 恐怕您必须在本地(通过下载)获取文件才能枚举其内容。您可以通过请求说文件的前几个 kB 来仅下载文件的标题,但仅此而已。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多