如何删除Jar文件中的文件夹?

时间:2013-04-16 07:01:16

标签: java jar io zip

我正在做关于操纵JAR文件的功课。我可以删除JAR文件中的文件,但文件夹仍在其中。

如何删除它们?

2 个答案:

答案 0 :(得分:1)

  • 要删除 jar 文件中的文件夹(确保不需要的文件夹上有斜杠):
zip -d file.jar unwanted_folder/
  • 要删除文件夹和其中的所有文件:
zip -d file.jar unwanted_folder/\*

Info sources

答案 1 :(得分:0)

我没有代码可以做到这一点,但基本的想法很简单,几乎可以翻译成任何语言。 jar文件布局只是一系列表示文件的块(标题后跟压缩数据),最后是一个只包含所有元数据的中心目录。这是过程:

在文件中向前扫描,直到找到要删除的第一个文件。 在文件中向前扫描,直到找到您不想删除的第一个文件或者您点击中央目录。 在文件中向前扫描,直到找到要删除的第一个文件或者您到达中心目录。 将在步骤3中找到的所有数据复制回您在步骤2中跳过的数据,直到找到要删除的其他文件或者您到达中央目录。 除非您点击中央目录,否则请转到第2步。 将中央目录复制到复制停止的位置,省略已删除文件的条目并更改偏移量以反映每个文件的移动量。 有关ZIP文件结构的所有详细信息,请参阅http://en.wikipedia.org/wiki/ZIP_%28file_format%29

最好的建议是,您可能希望将复制复制到另一个文件中,以防止在发生故障时丢失数据。