Java Распакуйте файлы и загрузите новые на FTP-сервер - PullRequest
0 голосов
/ 15 октября 2018

Как видно из заголовка, я хочу загрузить некоторые файлы из zip-архива, которых в данный момент нет на ftp-сервере.

byte[] buffer = new byte[1024];
ZipEntry zipEntry = zis.getNextEntry();
List<ZipEntry> filesToUpload = new ArrayList<>();
while (zipEntry != null) {
    if (zipEntry.getSize() > 0 && !filesInUploadDirectory.contains(directory + zipEntry.getName())) {
        filesToUpload.add(zipEntry);
    }
    zipEntry = zis.getNextEntry();
}
if (filesToUpload.size() > 0) {
    if (connectAndPrepareFTP(ftpUploadClient, host, user, password)) {
        for (ZipEntry file : filesToUpload) {
            OutputStream fos = ftpUploadClient.storeFileStream(directory + file.getName());
            showServerReply(ftpUploadClient);
            int len;
            while ((len = zis.read(buffer)) > 0) {
                fos.write(buffer, 0, len);
            }
            fos.close();
            if (ftpUploadClient.completePendingCommand()) {
                showServerReply(ftpUploadClient);
            }
        }
    }
    disconnectFTP(ftpUploadClient);
}
zis.closeEntry();
zis.close();

Проблема в том, что после загрузки все файлы пусты.Я думаю, что проблема может заключаться в том, что я храню объекты ZipEntry в списке.

...