【发布时间】:2021-08-25 09:50:18
【问题描述】:
我正在尝试在另一个 tar.gz 文件中获取 tar.gz 文件的文件名。这是示例代码;
try (TarInputStream tis = getStreamRemoteTarGz(url)) { // accessing the first tar.gz file
TarEntry e;
while ((e = tis.getNextEntry()) != null) {
if (e.getName().endsWith(".tar.gz")) {
// accessing the inner tar.gz file (java.io.FileNotFoundException: inner_tar_file.tar.gz (No such file or directory))
try (TarInputStream innerTis = new TarInputStream(new GZIPInputStream(new FileInputStream(entry.getName())))) {
....
}
}
结果,我得到了 FileNotFoundException: inner_tar_file.tar.gz。文件名 (inner_tar_file.tar.gz) 是正确的,我可以访问内部 tar.gz 文件的名称,但我想访问包含在此 tar.gz 文件中的文件名。如何使用 TarInputStream 访问内部 tar.gz 文件的文件名?
【问题讨论】:
-
可能是不支持嵌套。不确定,但记得是这样的
-
我可以在定义 TarInputStream 后进行内部操作。支持嵌套,因为第一个 try-catch 块工作正常,但我无法读取内部 tar.gz 文件的内容。
标签: java gzip tar gzipinputstream