Windows - 我正在尝试使用JTar lib创建一个新的Tar文件,其中包含以下内容...
MyTarFile.tar--|
|--MyFolder--|
|--MyFile.zip
我可以使用MyTarFile根目录中的文件夹和zip文件创建它,但我不知道(我环顾四周)如何创建该文件夹并在其中包含zip文件。我需要知道TarEntry的使用对象(File对象)(文件夹是一个文件,文件是一个文件......还是两个文件?)和InputStream应该是什么样的(我相信)只有一个zip文件,但不确定)。我正在尝试创建一个模仿现有格式的文件,所以我没有选择只丢失该文件夹,因为使用该文件的软件将会查找它。我可以在tarring之前将zip文件添加到实际文件系统上的MyFolder文件夹中(再次,这是在Windows上)...无论什么工作都没问题。
我尝试过完整的路径和相对路径(似乎InputStream必须有一个完整的路径),没有运气。除了切换库之外没有其他想法(也许JTar不支持这个)。
谢谢!
答案 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");