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

标签 java windows

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

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

我可以使用 MyTarFile 根目录中的文件夹和 zip 文件来创建它,但我不知道(我环顾四周)如何创建该文件夹并在其中包含 zip 文件。我需要知道 TarEntry(s) 使用什么(文件对象)(它是一个用于文件夹,一个用于文件......还是两者都使用一个?)以及 InputStream 应该是什么样子(我相信zip 文件只有一个,但不确定)。我正在尝试创建一个文件来模仿现有格式,因此我无法选择仅丢失该文件夹,因为使用该文件的软件将寻找它。我可以在压缩或不压缩之前将 zip 文件添加到实际文件系统(同样,这是在 Windows 上)上的 MyFolder 文件夹中......无论做什么都可以。

我已经尝试了完整路径和相对路径(似乎 InputStream 必须有完整路径)但没有成功。除了切换库之外没有其他想法(可能 JTar 不支持这个)。

谢谢!

最佳答案

在没有看到您已经写过的内容的情况下,这是我最好的回答尝试。我不熟悉 JTar,但在看了他们主要的例子之后 page ,我写了一个快速测试程序,它创建了一个 tar,在 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 是使用相对路径作为 TarEntry 构造函数中的 entryName 参数实例化的。这是一个命名不当的参数,因为它在技术上是 tar 中文件的路径,而不仅仅是名称。

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

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

关于Java & JTar - 如何使用 JTar 在文件夹中添加文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13829225/

相关文章:

java - 通过接口(interface)将数据从类传递到 Activity 并修改 UI

python - Windows 与 Linux 文本文件读取

c++ - 如果 fopen 不存在则创建新文件夹

java - 如何修复在 Web 上下文中找不到 Faces Servlet (javax.faces.webapp.FacesServlet) - 无法配置 PrettyFaces DynaView?

css - 字体 xheight 不均匀 - win webkit 修复

windows - TextPad 和 Unicode : full support?

C++ WM_SIZE 用于最小应用程序大小

java - Spring MVC(和 angularjs)-检索图像 : high memory usage in Chrome

java - 如何根据环境在 web.xml 中设置值

java - 将 JConsole 连接到另一个用户的进程