Решено, см. Мое сообщение нижеJava: Как скопировать папку из одной банки в другую?
Я хочу скопировать файлы из одного .jar в другой с помощью java. Но не все файлы в банке должны быть скопированы. Мне нужно только скопировать одну конкретную папку, которая также может содержать подпапки. У меня уже есть код для копирования файлов из одного кувшина в другой:
public static void copyFiles(final File file) throws IOException {
final JarFile targetJar = new JarFile(file);
final JarOutputStream output = new JarOutputStream(new FileOutputStream(file));
final JarFile localJar = new JarFile(new File(JarEditor.class.getProtectionDomain().getCodeSource().getLocation().getFile()));
// WRAPPER_CONTENT is a String[] which contains all names of the files i want to copy
for (final String entryName : StringResource.WRAPPER_CONTENT) {
final JarEntry entryToCopy = localJar.getJarEntry(entryName);
final JarEntry targetEntry = new JarEntry(entryName);
output.putNextEntry(targetEntry);
final InputStream input = localJar.getInputStream(entryToCopy);
final byte[] buffer = new byte[10240];
int readByte = 0;
while ((readByte = input.read(buffer)) >= 0) {
output.write(buffer, 0, readByte);
}
}
output.flush();
output.close();
localJar.close();
targetJar.close();
}
В настоящее время им копирование файлов, запустив через закодированный список их имена. Но id предпочитает более гибкий способ, чтобы я мог добавлять и удалять ресурсы из своей банки, и это все равно будет работать. Все они имеют одну и ту же родительскую папку в банке. Итак, как мне пройти через эту одну папку и только скопировать эти файлы?
Также, возможно, стоит упомянуть, все файлы, которые должны быть скопированы, расположены в jarfile, из-за которого я запускаюсь, поскольку вы, вероятно, получили от моего кода.
Спасибо за помощь
Baschdi