我想知道是否可以从ZipEntry
...
当我调用Entry的getName()
时,我会得到一个完整的路径名。
我只需要获取文件的名称。
在这里,我需要获取简单的名称,而不是全名及其根。
public class ZipFileSample {
public static void main(String[] args) {
try {
ZipFile zip = new ZipFile(new File("C:\\Users\\Levi\\Desktop\\jessica.zip"));
for (Enumeration e = zip.entries(); e.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) e.nextElement();
//Here I need to get the simple name instead the full name with its root
System.out.println(entry.getName());
}
} catch (ZipException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:5)
怎么样
new File(entry.getName()).getName()
答案 1 :(得分:2)
您可以尝试使用以下代码(可能需要对java.lang.StringIndexOutOfBoundsException采取一些预防措施)。如果您知道扩展名
,也可以执行一些检查 try {
ZipFile zip = new ZipFile(new File("F:\\OTHERS\\classes.zip"));
for (Enumeration e = zip.entries(); e.hasMoreElements(); ) {
ZipEntry entry = (ZipEntry) e.nextElement();
//Here I need to get the simple name instead the full name with its root
String name =entry.getName();
//if( name.endsWith(".java"))
// {
name = name.substring(name.lastIndexOf("/")+1,name.length() );
System.out.println(name );
// }
}
} catch (ZipException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}