Java& JTar - 如何使用JTar在文件夹中添加文件?

时间:2012-12-11 22:01:22

标签: java windows

Windows - 我正在尝试使用JTar lib创建一个新的Tar文件,其中包含以下内容...

MyTarFile.tar--|
               |--MyFolder--|
                            |--MyFile.zip

我可以使用MyTarFile根目录中的文件夹和zip文件创建它,但我不知道(我环顾四周)如何创建该文件夹并在其中包含zip文件。我需要知道TarEntry的使用对象(File对象)(文件夹是一个文件,文件是一个文件......还是两个文件?)和InputStream应该是什么样的(我相信)只有一个zip文件,但不确定)。我正在尝试创建一个模仿现有格式的文件,所以我没有选择只丢失该文件夹,因为使用该文件的软件将会查找它。我可以在tarring之前将zip文件添加到实际文件系统上的MyFolder文件夹中(再次,这是在Windows上)...无论什么工作都没问题。

我尝试过完整的路径和相对路径(似乎InputStream必须有一个完整的路径),没有运气。除了切换库之外没有其他想法(也许JTar不支持这个)。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果没有看到你已经写过的东西,这是我最好的回答。我对JTar不熟悉,但在查看了他们的主page上的示例后,我编写了一个快速测试程序,它在tar的根目录中创建了一个tar文件,在一个目录中创建了一个文件。焦油,我相信你正在尝试做的事情。您感兴趣的代码是:

TarEntry tarEntry = new TarEntry(new File("/Users/userGuy/Documents/students.xml"),"students.xml");
TarEntry otherTarEntry = new TarEntry(new File("/Users/userGuy/Documents/students2.xml"),"inner-dir/students2.xml");

请注意,第二个tar条目otherTarEntry使用相对路径作为entryName构造函数中的TarEntry参数进行实例化。这是一个命名不好的参数,因为它在技术上是tar中文件的路径,不是只是名称。

使用上面的示例文件名,您的代码可能如下所示:

TarEntry tarEntry = new TarEntry(new File("<path to file>"),"MyFolder/MyFile.zip");