Удалить каталог после распаковки файла - PullRequest
0 голосов
/ 21 июня 2019

У меня есть файл .tar.gz, и я хочу распаковать этот же файл.

Для этого у меня есть эта функция в Java:

private void unTarFile(String tarFile, File destFile) {
    TarArchiveInputStream tis = null;
    FileInputStream fis = null;
    GZIPInputStream gzipInputStream = null;
    BufferedInputStream bis = null;
    try {
        fis = new FileInputStream(tarFile);
        bis = new BufferedInputStream(fis);
        // .gz
        gzipInputStream = new GZIPInputStream(bis);
        // .tar.gz
        tis = new TarArchiveInputStream(gzipInputStream);
        TarArchiveEntry tarEntry = null;
        while ((tarEntry = tis.getNextTarEntry()) != null) {
            System.out.println(" tar entry- " + tarEntry.getName());
            if (tarEntry.isDirectory()) {
                continue;
            } else {
                // In case entry is for file ensure parent directory is in place
                // and write file content to Output Stream
                File outputFile = new File(destFile + File.separator + tarEntry.getName());
                outputFile.getParentFile().mkdirs();
                IOUtils.copy(tis, new FileOutputStream(outputFile));
            }
        }
    } catch (IOException ex) {
        System.out.println("Error while untarring a file- " + ex.getMessage());
    } finally {
        if (bis != null) {
            try {
                bis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (gzipInputStream != null) {
            try {
                gzipInputStream.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (fis != null) {
            try {
                fis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        if (tis != null) {
            try {
                tis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }
}

Это работает, и я могу успешно распаковать мой .tar.gz. Я могу отредактировать файлы каталога без архива, но когда я пытаюсь удалить свой каталог, я не могу:

enter image description here

Я забыл что-то закрыть?

...