Hi. ich schreibe gerade ein programm welches, ein File Array verarbeiten soll, und dieses in eine .jar datei übertragen soll.
Das problem an der Sache ist das ich jetzt nicht mehr weiter weis.
Wie schaffe ich es das Ordner korrekt verarbeitet werden?
Atm werden nur Dateien kopiert, weil ich mich mit rekursiver verarbeitung von dateien nicht wirklich auskenne.
Ich hatte es allein versucht, das hat aber damit geendet das es einen Critical Java error gab, und mein Programm abgestüzt ist,
inklusive "ubuntu hat ein problem festgestellt...".
Das hier ist mein code.
Wäre nett wenn mir jemand helfen könnte.
Mfg Benni1000
Das problem an der Sache ist das ich jetzt nicht mehr weiter weis.
Wie schaffe ich es das Ordner korrekt verarbeitet werden?
Atm werden nur Dateien kopiert, weil ich mich mit rekursiver verarbeitung von dateien nicht wirklich auskenne.
Ich hatte es allein versucht, das hat aber damit geendet das es einen Critical Java error gab, und mein Programm abgestüzt ist,
inklusive "ubuntu hat ein problem festgestellt...".
Java:
private void addFiles(File[] files, JarFile jar) {
JarOutputStream jos = null;
try {
//extract jarfile
String p = settings.workdir + "temp";
for (JarEntry entry : Collections.list(jar.entries())) {
try {
new File(p).mkdirs();
extractJarEntry(jar, entry, p);
} catch (IOException ex) {
Logger.getLogger(ModDownloader.class.getName()).log(Level.SEVERE, null, ex);
}
}
p = p + "/";
if (settings.osname.contains("win")) {
p = p.replace("/", "\\");
}
for (File file : files) {
copy(file.getAbsolutePath(), p + file.getName());
}
String ptm = settings.mcdir + "/bin/minecraft.jar";
if (settings.osname.contains("win")) {
ptm = ptm.replace("/", "\\");
}
jos = new JarOutputStream(new FileOutputStream(new File(ptm)));
File[] listFiles = new File(p).listFiles();
for (File file : listFiles) {
if (file.isDirectory()) {
//Hier weiß ich nicht mehr weiter ;_;
} else {
jos.putNextEntry(new JarEntry(file.getName()));
InputStream in = new FileInputStream(file);
int len;
while ((len = in.read(BUFFER)) > 0) {
jos.write(BUFFER, 0, len);
}
in.close();
jos.closeEntry();
}
}
} catch (IOException ex) {
Logger.getLogger(ModDownloader.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
jos.close();
} catch (IOException ex) {
Logger.getLogger(ModDownloader.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Das hier ist mein code.
Wäre nett wenn mir jemand helfen könnte.
Mfg Benni1000