首页 > 解决方案 > 尝试使用 JTar 解压缩时,Mkdir 不起作用

问题描述

我正在尝试实现一个解压缩文件的函数。下面是我使用 JTar 编写的代码

    private void untar(String tarFile, String destFolder) throws IOException {
            TarInputStream tis = new TarInputStream(new BufferedInputStream(new FileInputStream(tarFile)));
            TarEntry entry;
            while (( entry = tis.getNextEntry() ) != null) {
                System.out.println( "Extracting: " + entry.getName() );
                int count;
                byte data[] = new byte[2048];

                if (entry.isDirectory()) {
                    new File( destFolder + "/" + entry.getName() ).mkdirs();
                    continue;
                } else {
                    int di = entry.getName().lastIndexOf( '/' );
                    System.out.println("File"+di);
                    if (di != -1) {
                        File f = new File( destFolder + "/" + entry.getName().substring( 0, di ) );
                        if(f.mkdirs())
                            System.out.println(f.isDirectory());
                    }
                }

                FileOutputStream fos = new FileOutputStream( destFolder + "/" + entry.getName() );
                BufferedOutputStream dest = new BufferedOutputStream( fos );

                while (( count = tis.read( data ) ) != -1) {
                    dest.write( data, 0, count );
                }

                dest.flush();
                dest.close();
            }
            tis.close();
        }

if当我点击 mkdirs() 部分并尝试创建一个目录时,它没有这样做,并且在语句之后我在控制台上看不到任何输出。

这可能是 FileOutputStream 的后续代码显示 IOexception 声明不是目录的原因。

我在任何地方都找不到解决此问题的方法。

标签: javaandroid

解决方案


推荐阅读