Java Mkdir不';在尝试使用JTar解除tar时无法工作

Java Mkdir不';在尝试使用JTar解除tar时无法工作,java,android,Java,Android,我正在尝试实现一个文件解压缩功能。下面是我使用JTar编写的代码 private void untar(String tarFile, String destFolder) throws IOException { TarInputStream tis = new TarInputStream(new BufferedInputStream(new FileInputStream(tarFile))); TarEntry entry;

我正在尝试实现一个文件解压缩功能。下面是我使用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();
        }
当我点击mkdirs()部分并尝试创建目录时,它不会这样做,并且在
if
语句之后,我在控制台上看不到任何输出

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


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

mkdirs()将返回true或false。您没有检查返回值并对其进行操作。此外,仅当目录尚不存在时才应调用mkdirs()。检查exists()。如果目录已经存在,mkdirs()将返回false。这就是为什么你不能像现在这样盲目地调用它。
关于android权限,我在AndroidManifests.xml中添加了这一点,所以这肯定不是问题,这是不够的。您还应该添加代码,在运行时要求用户确认这些权限。谷歌搜索运行时权限。如果无法创建目录,请停止或返回。尝试在不存在的目录中写入文件是没有意义的。暂时(作为快速测试),您可以在设备上转到应用程序的设置,并将存储权限切换为打开。