gpt4 book ai didi

java - 使用 JUnrar 提取文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:07:51 26 4
gpt4 key购买 nike

我之前问过一个关于用 Java 提取 RAR 文件的问题,有人向我指出了 JUnrar。官方网站已关闭,但它似乎被广泛使用,因为我在网上发现了很多关于它的讨论。

有人可以告诉我如何使用 JUnrar 提取存档中的所有文件吗?我在网上找到了一个小片段,但它似乎不起作用。它显示存档中的每个项目都是一个目录,即使它是一个文件。

    Archive rar = new Archive(new File("C://Weather_Icons.rar"));
FileHeader fh = rar.nextFileHeader();

while(fh != null){
if (fh.isDirectory()) {
logger.severe("directory: " + fh.getFileNameString() );
}

//File out = new File(fh.getFileNameString());
//FileOutputStream os = new FileOutputStream(out);
//rar.extractFile(fh, os);
//os.close();
fh=rar.nextFileHeader();

}

谢谢。

最佳答案

也许您还应该查看 this片段代码。可在下方找到其副本。

public class MVTest {

/**
* @param args
*/
public static void main(String[] args) {
String filename = "/home/rogiel/fs/home/movies/vp.mp3.part1.rar";
File f = new File(filename);
Archive a = null;
try {
a = new Archive(new FileVolumeManager(f));
} catch (RarException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (a != null) {
a.getMainHeader().print();
FileHeader fh = a.nextFileHeader();
while (fh != null) {
try {
File out = new File("/home/rogiel/fs/test/"
+ fh.getFileNameString().trim());
System.out.println(out.getAbsolutePath());
FileOutputStream os = new FileOutputStream(out);
a.extractFile(fh, os);
os.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RarException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fh = a.nextFileHeader();
}
}
}
}

关于java - 使用 JUnrar 提取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304849/

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