如何获得ZipEntry的简单名称?

时间:2012-10-05 14:18:11

标签: java android

我想知道是否可以从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();

        }

    }
}

2 个答案:

答案 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();

        }