【问题标题】:Is there a platform-independent way to programmatically remove a file from a zip / jar?是否有一种独立于平台的方式以编程方式从 zip/jar 中删除文件?
【发布时间】:2012-07-27 17:07:19
【问题描述】:

希望不必解压并重新打包存档。

【问题讨论】:

    标签: java io zip


    【解决方案1】:

    是的!使用TrueZip

    TrueZIP 是一个基于 Java 的虚拟文件系统 (VFS),它使客户端应用程序能够对存档文件执行 CRUD(创建、读取、更新、删除)操作,就好像它们是虚拟目录一样,即使在多线程环境中嵌套存档文件也是如此。

    完全理解 API 需要一些工作,但是一旦你这样做了,你就会发现它非常容易用于涉及压缩文件的各种任务。

    【讨论】:

      【解决方案2】:

      看一下 JDK7 中的Zip File System Provider,它允许您将 zip 文件视为文件系统,这意味着您可以执行操作,例如移动、复制、删除、重命名等,就像您一样普通文件。

      另请参阅这篇文章,Java 7: Working with Zip Files,其中更详细地解释了如何创建 zip 文件系统并对其执行各种操作。

      【讨论】:

      • 该博文中的代码有问题,例如 create 方法不包含空目录。我尝试使用Zip File System Provider,但发现在与同名文件夹(例如\folder 和\folder.zip)在同一目录中有一个zip 存档的情况下,很难访问自定义文件系统中的文件因为我不知道如何将文件系统视为目录。使用filesystem.getPath(path) 会返回一个指向该文件系统根目录的相对路径……所以即使阅读了所有文档,我也不太确定如何使用它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多