首先,我没有看到任何其他问题可以“直接”帮助我解决问题,这就是我决定创建一个新问题的原因。
以下代码被编程为解压缩多个文件和文件夹。
try {
BufferedOutputStream dest = null;
FileInputStream fis = new FileInputStream(file);
CheckedInputStream checksum = new CheckedInputStream(fis, new Adler32());
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(checksum));
ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
if (!entry.isDirectory()) {
String rutaarchivo = entry.getName();
int index= rutaarchivo.lastIndexOf('/');
rutaarchivo=rutaarchivo.substring(index+1);
estado.setText("Estado: Copiando archivos nuevos: " + entry);
setProgress(60);
int zipCounter = 0;
int count;
int BUFFER = 2048;
byte datazip[] = new byte[BUFFER];
FileOutputStream fos = new FileOutputStream(rutaarchivo);
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(datazip, 0, BUFFER)) != -1) {
dest.write(datazip, 0, count);
zipCounter += count;
progreso.setValue(zipCounter);
}
dest.flush();
dest.close();
}
}
zis.close();
} catch (Exception e) {
e.printStackTrace();
PrintStream outprint = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(outprint);
} catch (MalformedURLException ex) {
ex.printStackTrace();
PrintStream outprint = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(outprint);
} catch (IOException ioe) {
ioe.printStackTrace();
PrintStream outprint = new PrintStream(new FileOutputStream("output.txt"));
System.setOut(outprint);
}
这段代码工作正常,但有一个重要错误:它解压缩文件夹,而不是像这样显示它们:
- 文件1.txt
- 文件2.txt
- 文件 3.txt
- 文件夹/file4.txt
- 文件夹/file5.txt
- 文件夹/file6.txt
它显示了这一点:
- 文件1.txt
- 文件2.txt
- 文件 3.txt
- 文件4.txt
- 文件5.txt
- 文件6.txt
我究竟做错了什么?