Перечисление FTPFile из FTP с использованием ZipFile

Мой обычный подход без 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-сервером, получение FTP-файла и его использование усложняют задачу:

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)

Какой обходной путь для этого? Как я могу указать путь, чтобы он знал, где искать почтовый индекс?

Спасибо заранее!

1 ответ

Решение

Вам, вероятно, придется сначала получить файл с FTP-сервера, прежде чем вы сможете получить к нему доступ. FTPFile Экземпляр выглядит как ссылка на фактический файл.

Посмотрите здесь пример: http://www.mysamplecode.com/2012/03/apache-commons-ftpclient-java-example_16.html

Другие вопросы по тегам