如何解决在 Apache Commons VFS 中访问档案中的档案
我使用的是 Apache Commons VFS 2.7.0 是否可以使用 VFS 访问存档内的存档内的文件?
我有一个 tar.bz2 文件,其中包含 tar.gz 文件,如下所示:
archive.tar.bz2
|
-archive2.tar.gz
|
-f1.html
-f2.html
-archive2.tar.gz
|
-file3.html
-file4.html
我正在尝试访问 html 文件。我可以用 VFS 做到这一点吗?
这是我尝试过的:
void testVFS() throws Exception {
File dir = new File("/");
File file = new File(dir.getAbsolutePath() + "/archive.tar.bz2");
FileSystemManager fsManager = VFS.getManager();
System.out.println("tbz2:" + file.toURI());
FileObject archive = fsManager.resolveFile("tbz2:" + file.toURI());
// List the children of the archive file
FileObject[] children = archive.getChildren();
System.out.println("Children of " + archive.getName().getURI()+" are ");
for (FileObject child : children) {
System.out.println("Child: " + child.getURI());
FileObject fo = archive.getFileSystem().getFileSystemManager().resolveFile("tgz:" + child.getPath()); // <-- throws FileSystemNotFoundException
for (FileObject gc : fo.getChildren()) {
System.out.println("Grand child: " + gc.getURI().toString());
}
}
}
产生输出
tbz2:file:/C:/archive.tar.bz2
Child: tbz2:file:///C:/archive.tar.bz2!/archive2.tar.gz
java.nio.file.FileSystemNotFoundException: Provider "tbz2" not installed....
我尝试了其他一些方法,包括尝试以“tgz:tbz2:file:/C:/archive.tar.bz2!archive.tar.gz”的形式访问内部文件,但遇到了类似的异常。
如何使用 VFS 访问这些文件?任何帮助将不胜感激,即使是“你不能用 Commons VFS2 做到这一点”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。