Java解压缩文件,然后将新文件上传到FTP服务器

时间:2018-10-15 16:58:49

标签: java file-io unzip fileinputstream

就像标题中所说的,我想从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对象存储在列表中。

0 个答案:

没有答案