gpt4 book ai didi

java - 如何访问位于 ZipEntry 内的文件夹内的文件

转载 作者:行者123 更新时间:2023-12-04 10:57:35 27 4
gpt4 key购买 nike

抱歉标题困惑。基本上我有一个 ZipFile,里面有一堆 .txt 文件,但也有一个文件夹。我在下面显示的代码是在 zip 条目中找到该文件夹​​。这部分我做得很好。问题是,一旦我找到该文件夹​​,它就是一个 ZipEntry。碰巧没有任何有用的方法来获取该文件夹内的条目。我找到的文件夹中有更多我想要处理的 .txt 文件(这是主要目标)。

zipFile = new ZipFile(zipName);
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while(entries.hasMoreElements()){
ZipEntry current = entries.nextElement();
if(current.getName().equals(folderName)) {
assertTrue(current.isDirectory());
//Here is where I want to get the files in the folder
}
}

最佳答案

ZipEntry有一个方法 isDirectory()哪一个

Returns true if this is a directory entry. A directory entry is defined to be one whose name ends with a '/'.



您要做的是遍历所有条目(正如您所做的那样)并获得 InputStream对于目录内的那些,即。具有相对于目录的路径。

folderName具有值 "/zip/myzip/directory" ,那么该目录中的文件的名称将为 "/zip/myzip/directory/myfile.txt" .您可以使用 Java NIO Path api来帮助你
Path directory = Paths.get("/zip/myzip/directory"); // you get this directory path from the ZipEntry
Path file = Paths.get(current.getName());
if (file.startsWith(directory)) {
// do your thing
}

您可以获得 InputStream作为
zipFile.getInputStream(current);

备注 Zip 文件中的路径将相对于 Zip 位置的根目录。如果 zipper 在
C:/Users/You/Desktop/myzip.zip

直接在 zip 内的文件夹,显示路径如下
directory/

关于java - 如何访问位于 ZipEntry 内的文件夹内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280103/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com