我正在尝试从tar文件内部返回文件名列表。我正在使用下面的代码,但是当它进入while循环时,它立即转到catch异常并显示“ java.io.IOException:检测到解析标头时出错”>
下面是我正在使用的代码。您能帮我弄清楚为什么这行不通吗?
public List<String> getFilesInTar(String filename) {
List<String> foundFiles = Lists.newArrayList();
String filePath = System.getProperty("user.home") + File.separator + "Downloads" + File.separator + filename;
try {
TarArchiveInputStream tarInput = new TarArchiveInputStream(new FileInputStream(filePath));
TarArchiveEntry entry;
while ((entry = tarInput.getNextTarEntry()) != null) {
if (!entry.isDirectory()) {
foundFiles.add(entry.getName());
}
}
tarInput.close();
} catch (IOException ex) {
log.error(ex.getMessage());
}
return foundFiles;
}
我正在尝试从tar文件内部返回文件名列表。我正在使用下面的代码,但是当它进入while循环时,它立即转到catch异常并说“ java.io ....
您的文件不是tar文件。这是tar文件的压缩存档。