android 如何获得ZipEntry的简单名称?

disho6za  于 2023-01-15  发布在  Android
关注(0)|答案(3)|浏览(122)

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

        }

    }
}
flmtquvp

flmtquvp1#

不如

new File(entry.getName()).getName()
rhfm7lfc

rhfm7lfc2#

你可以尝试下面的代码(可能你需要对java.lang.StringIndexOutOfBoundsException采取一些预防措施)。2如果你知道扩展名,你也可以强制执行一些检查

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

        }
9rygscc1

9rygscc13#

字符串名称=名称.子字符串(名称.最后索引Of(“/”)+1);

相关问题