在解压缩.7z文件时,空文件夹被忽略,我想在解压缩任何.7z文件后也考虑空文件夹。
我的代码如下
SevenZFile sevenZFile = new SevenZFile(new File(filename));
SevenZArchiveEntry entry;
while ((entry = sevenZFile.getNextEntry()) != null){
if (entry.isDirectory()){
continue;
}
File curfile = new File(DestinationPath,entry.getName());
File parent = curfile.getParentFile();
if (!parent.exists()) {
parent.mkdirs();
}
FileOutputStream out = new FileOutputStream(curfile);
byte[] content = new byte[(int) entry.getSize()];
sevenZFile.read(content, 0, content.length);
out.write(content);
out.close();
答案 0 :(得分:0)
您的代码似乎正常运作。
该文件夹可能从一开始就不在“yourfile.7zip”中。
这是7zip的常见问题,您必须更新7zip版本。
如果7Zip包含正确的参数,请使用:
if (entry.isDirectory()){
new File(DestinationPath,entry.getName()).mkdir();
continue;
}
自:
文件输出流是用于将数据写入File或的输出流 到FileDescriptor。
这是完成任务的正确方法,因为本机库供应商没有文件夹实现。