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