java-如何解压缩zip文件的特定目录中的所有文件?

用户名

假设我有一个名为Bundles.zip的.zip文件,并且直接在Bundles.zip内部,有一些文件和一些文件夹。.zip如下所示:

Bundles.zip顶级屏幕截图

现在,我想Bundles文件夹中提取一切我的程序已经知道从中提取文件所需的文件夹名称,在本例中为Bundles

软件包的zip文件夹里面可以有文件,子文件夹,文件的子文件夹,任何事情,就像这样:

Bundles.zip内部文件夹截图

我只需要将所有内容从Bundles文件夹提取到输出目录即可。

如何在Java中完成此操作?我找到了解压缩zip中所有文件和文件夹的答案,但是我只需要解压缩zip中的特定文件夹,而不是所有内容。

到目前为止的工作代码:

            ZipFile zipFile = new ZipFile(mapsDirectory + "mapUpload.tmp");
            Enumeration zipEntries = zipFile.entries();
            String fname;
            String folderToExtract = "";
            String originalFileNameNoExtension = originalFileName.replace(".zip", "");

            while (zipEntries.hasMoreElements()) {
                ZipEntry ze = ((ZipEntry)zipEntries.nextElement());

                fname = ze.getName();

                if (ze.isDirectory()) //if it is a folder
                {

                    if(originalFileNameNoExtension.contains(fname)) //if this is the folder that I am searching for
                    {
                        folderToExtract = fname; //the name of the folder to extract all the files from is now fname
                        break;
                    }
                }
            }

            if(folderToExtract == "")
            {
                printError(out, "Badly packaged Unturned map error:  " + e.getMessage());
                return;
            }


            //now, how do i extract everything from the folder named folderToExtract?

对于到目前为止的代码,originalFileName类似于“ The Island.zip”。拉链内有一个名为The Island的文件夹。我需要在zip文件中找到与zip文件名称匹配的文件夹,然后提取其中的所有内容。

猛击

文件的路径(文件夹)是“ zipEntry.getName()”返回的内容的一部分,它可以为您提供所需的信息,甚至可以了解文件是否位于您要查找的文件夹中。

我会做类似的事情:

while (zipEntries.hasMoreElements()) {
  //fname should have the full path
  if (ze.getName().startsWith(fname) && !ze.isDirectory())
    //it is a file within the dir, and it isn't a dir itself
    ...extract files...
  }
}

ZipFile有一个getInputStream方法来获取给定ZipEntry的输入流,因此,如下所示:

InputStream instream = zipFile.getInputStream(ze);

然后从流中读取字节并将其写入文件。

如果您需要代码将1级以上的代码深入子目录,则可以执行以下操作。显然,这不会编译,但是您可以理解。该方法调用自身,然后返回自身,从而有可能深入所需的子文件夹。

private void extractFiles(String folder) {
  //get the files for a given folder
  files = codeThatGetsFilesAndDirs(folder);

  for(file in files) {
    if(file.isDirectory()) {
      extractFiles(file.getName()); 
    } else {
      //code to extract the file and writes it to disk.
    }
  } 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 Java 解压缩目录中所有受密码保护的 zip 文件

来自分类Dev

如何使用Java下载和解压缩ZIP文件

来自分类Dev

在Java中无需解压缩即可替换Zip文件

来自分类Dev

如何解压缩我的子目录中的所有 zip 文件夹?

来自分类Dev

如何使用Java搜索docx文件并将其解压缩到给定目录中?

来自分类Dev

如何解压缩所有在某个特定目录中的许多子目录中找到的许多zip文件

来自分类Dev

使用JAVA ZipFile类解压缩Zip文件

来自分类Dev

使用JAVA ZipFile类解压缩Zip文件

来自分类Dev

通过java.util.zip库解压缩具有特殊字符的文件

来自分类Dev

如何解压缩子目录中的所有文件

来自分类Dev

如何解压缩子目录中的所有文件?

来自分类Dev

Java如何在大型机中解压缩PKZIP压缩的文件?

来自分类Dev

在Java中解压缩会导致“ java.util.zip.ZipException”的zip文件-无效的LOC标头(错误的签名)

来自分类Dev

使用Java解压缩UNIX中的.Z文件

来自分类Dev

Java:目标文件夹中的Zip文件大小大于资源中的原始大小,不会解压缩

来自分类Dev

如何解压缩“ .zip”文件?

来自分类Dev

Java:如何以低内存使用率解压缩文件(zip 或 tar.gz)?

来自分类Dev

如何递归复制目录中的所有文件并快速解压缩压缩文件

来自分类Dev

如何使用 Java 压缩和解压缩文件/文件夹

来自分类Dev

如何解压缩.gz文件并将解压缩的文件保存到Python中的其他目录?

来自分类Dev

解压缩ZIP文件,然后解压缩所有子ZIP文件

来自分类Dev

将 .zip 文件解压缩到所有包含 .php 文件的目录中,其中包含文本“house”?

来自分类Dev

在Mac OS X中,如何解压缩一个zip文件而不解压缩其内容?

来自分类Dev

获取Java解压缩文件的进度

来自分类Dev

如何解压缩多个 zip 文件夹

来自分类Dev

Java中的RESTful Web服务,用于下载压缩文件,解压缩并将PDF文件显示给客户端

来自分类Dev

从多个zip文件中解压缩特定文件

来自分类Dev

如何或者是否有可能从解压缩的jar中执行Java应用

来自分类Dev

如何或是否有可能从解压缩的jar中执行Java应用

Related 相关文章

  1. 1

    如何使用 Java 解压缩目录中所有受密码保护的 zip 文件

  2. 2

    如何使用Java下载和解压缩ZIP文件

  3. 3

    在Java中无需解压缩即可替换Zip文件

  4. 4

    如何解压缩我的子目录中的所有 zip 文件夹?

  5. 5

    如何使用Java搜索docx文件并将其解压缩到给定目录中?

  6. 6

    如何解压缩所有在某个特定目录中的许多子目录中找到的许多zip文件

  7. 7

    使用JAVA ZipFile类解压缩Zip文件

  8. 8

    使用JAVA ZipFile类解压缩Zip文件

  9. 9

    通过java.util.zip库解压缩具有特殊字符的文件

  10. 10

    如何解压缩子目录中的所有文件

  11. 11

    如何解压缩子目录中的所有文件?

  12. 12

    Java如何在大型机中解压缩PKZIP压缩的文件?

  13. 13

    在Java中解压缩会导致“ java.util.zip.ZipException”的zip文件-无效的LOC标头(错误的签名)

  14. 14

    使用Java解压缩UNIX中的.Z文件

  15. 15

    Java:目标文件夹中的Zip文件大小大于资源中的原始大小,不会解压缩

  16. 16

    如何解压缩“ .zip”文件?

  17. 17

    Java:如何以低内存使用率解压缩文件(zip 或 tar.gz)?

  18. 18

    如何递归复制目录中的所有文件并快速解压缩压缩文件

  19. 19

    如何使用 Java 压缩和解压缩文件/文件夹

  20. 20

    如何解压缩.gz文件并将解压缩的文件保存到Python中的其他目录?

  21. 21

    解压缩ZIP文件,然后解压缩所有子ZIP文件

  22. 22

    将 .zip 文件解压缩到所有包含 .php 文件的目录中,其中包含文本“house”?

  23. 23

    在Mac OS X中,如何解压缩一个zip文件而不解压缩其内容?

  24. 24

    获取Java解压缩文件的进度

  25. 25

    如何解压缩多个 zip 文件夹

  26. 26

    Java中的RESTful Web服务,用于下载压缩文件,解压缩并将PDF文件显示给客户端

  27. 27

    从多个zip文件中解压缩特定文件

  28. 28

    如何或者是否有可能从解压缩的jar中执行Java应用

  29. 29

    如何或是否有可能从解压缩的jar中执行Java应用

热门标签

归档