diff options
author | axtloss <axtlos@getcryst.al> | 2023-05-25 20:24:13 +0200 |
---|---|---|
committer | axtloss <axtlos@getcryst.al> | 2023-05-25 20:24:13 +0200 |
commit | 88ff8a69891ad8193876bd6fcad7524a57151e80 (patch) | |
tree | dce89539afc6ca1e23c5ebbe7fc39e4bf1b5ea27 /src/main/java/io/github/jshipit/TarManager.java | |
parent | 9c7f48af6e8b43960e0f51a9d1bca249421be685 (diff) | |
download | jshipit-88ff8a69891ad8193876bd6fcad7524a57151e80.tar.gz jshipit-88ff8a69891ad8193876bd6fcad7524a57151e80.tar.bz2 |
Change tar extract method
Diffstat (limited to '')
-rw-r--r-- | src/main/java/io/github/jshipit/TarManager.java | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/main/java/io/github/jshipit/TarManager.java b/src/main/java/io/github/jshipit/TarManager.java deleted file mode 100644 index 41577a9..0000000 --- a/src/main/java/io/github/jshipit/TarManager.java +++ /dev/null @@ -1,74 +0,0 @@ -package io.github.jshipit; - -import org.apache.commons.compress.archivers.tar.TarArchiveEntry; -import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; -import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; -import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; -import org.apache.commons.compress.utils.IOUtils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; - -public class TarManager { - - public TarManager() { - - } - - public void tar(String name, File... files) throws IOException { - try (TarArchiveOutputStream out = getTarArchiveOutputStream(name)){ - for (File file : files){ - addToArchive(out, file, "."); - } - } - } - - public void untar(String in, File out) throws IOException { - SysUtils chmod = new SysUtils(); - try (TarArchiveInputStream fin = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(in)))){ - TarArchiveEntry entry; - while ((entry = fin.getNextTarEntry()) != null) { - if (entry.isDirectory()) { - continue; - } - File curfile = new File(out, entry.getName()); - File parent = curfile.getParentFile(); - if (!parent.exists()) { - parent.mkdirs(); - } - chmod.chmod(curfile.getPath(), entry.getMode()); - IOUtils.copy(fin, new FileOutputStream(curfile)); - } - } - } - - private TarArchiveOutputStream getTarArchiveOutputStream(String name) throws IOException { - TarArchiveOutputStream taos = new TarArchiveOutputStream(new FileOutputStream(name)); - taos.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_STAR); - taos.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU); - taos.setAddPaxHeadersForNonAsciiNames(true); - return taos; - } - - private void addToArchive(TarArchiveOutputStream out, File file, String dir) throws IOException { - String entry = dir + File.separator + file.getName(); - if (file.isFile()){ - out.putArchiveEntry(new TarArchiveEntry(file, entry)); - try (FileInputStream in = new FileInputStream(file)){ - IOUtils.copy(in, out); - } - out.closeArchiveEntry(); - } else if (file.isDirectory()) { - File[] children = file.listFiles(); - if (children != null){ - for (File child : children){ - addToArchive(out, child, entry); - } - } - } else { - System.out.println(file.getName() + " is not supported"); - } - } -}
\ No newline at end of file |