package jadx.core.utils.files; import jadx.core.utils.exceptions.JadxRuntimeException; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; public class FileUtils { private FileUtils() { } public static void addFileToJar(JarOutputStream jar, File source, String entryName) throws IOException { BufferedInputStream in = null; try { JarEntry entry = new JarEntry(entryName); entry.setTime(source.lastModified()); jar.putNextEntry(entry); in = new BufferedInputStream(new FileInputStream(source)); byte[] buffer = new byte[8192]; while (true) { int count = in.read(buffer); if (count == -1) { break; } jar.write(buffer, 0, count); } jar.closeEntry(); } finally { if (in != null) { in.close(); } } } public static void makeDirsForFile(File file) { File dir = file.getParentFile(); if (dir != null && !dir.exists()) { // if directory already created in other thread mkdirs will return false, // so check dir existence again if (!dir.mkdirs() && !dir.exists()) { throw new JadxRuntimeException("Can't create directory " + dir); } } } }