Verwende doch einfach WinRAR oder 7Zip dafür. Da ist schon alles fertig und beide Programme können über die Kommandozeile aufgerufen werden.
Sprich du musst aus deinem Programm nur die entsprechende EXE mit den Parametern starten.
Beispiel: http://stackoverflow.com/questions/9346077/java-execute-command-line-program
Nun Zip-Files und Rar-Files sind gänzlich andere Verfahren ^^
Warum postest du dann Informationen über Zip-Files?
Wenn es sich nur um Zip-Dateien handeln würde, hätte ich kein Problem.
Nur mit Rar-Dateien ist es eins und auch nur, wenn diese ein passwort haben.
Ich möchte möglichst vermeiden, Fremdprogramme aufzurufen, da diese nicht
bei jedem installiert sind und zum anderen weil es eine unschöne Art ist zu programmieren.
Ich habe doch oben genau den selben Link gepostet VirtualIndex
Genau im ersten Beitrag xD
Aber diese Bibliothek habe ich bereits ausprobiert.
Damit lässt sich leider keine Dechifrierung vornhemen.
Ohne Passwort funktioniert das, aber habe nichts gefunden,
was mir bei Junrar es ermöglicht ein passwort mitzugeben.
... keine Ahnung wie ich das so komplett vergeigen konnte. Letztlich könntest du deinem Projekt immer eine portable unrar.exe beilegen. Dann wäre das kein Problem, dass es nicht überall installiert ist.
Aber ja - bezüglich RARs wird es schwer - ZIP ist leicht gelöst. Ich suche mal weiter .
Vielen dank^^
Nun mit Zip-Dateien habe ich keine Probleme, stehe nur vor dem Problem,
dass ich auch Rar-Dateien habe, welche immer passwort geschützt sind.
Diese möchte ich gerne automatisch in ein angegebenes Verzeichnis extrahieren.
Lad dir die Portable-Version von 7Zip runter und leg die deinem Projekt bei. Führe das dann mit den Kommandozeilenbefehlen für 7zip aus: http://www.dotnetperls.com/7-zip-examples
Lad dir die Portable-Version von 7Zip runter und leg die deinem Projekt bei. Führe das dann mit den Kommandozeilenbefehlen für 7zip aus: http://www.dotnetperls.com/7-zip-examples
Hat jemand vielleicht den Command den ich brauche um folgendes Problem zu lösen?
Also mein Programm liegt im normalen Projekt Verzeichnis. (oder muss das in den src?)
Dann soll eine Rar-Datei mit einem Passwort an einem bestimmten Dateipfad extrahiert werden.
Die Rar-Datei liegt als File datei vor, genauso wie der destinationFolder und das Passwort natürlich als String.
Es funktioniert nicht wirklich. Ich habe folgendes als Parameter stehen
/C:/Users/Christopher/workspace/ZipDateiEntpacker/bin/App/7-Zip/7zG.exe x G:\Downloads\Test/test.rar G:\TestTarget -ptestpasswort
Es kommen keine Fehlermeldung, er macht einfach garnichts.
Lass ich das Passwort weg, obwohl der ein passwort hat, kommt die 7zip
Oberfläche, worin ich ein passwort eingeben soll. Mach ich das geht einfach das Fenster wieder zu und nichts passiert.
Wie lautet jetzt dein Befehl, mit dem du das Entpacken anstößt? Weil bei mir kommt immer wieder ein "Das System kann die Datei nciht finden", obwohl die 7z.exe vorhanden ist und auch mit getResource auffindbar ist.
versuch mal URL url = RarEntpacker.class.getResource("../resources/x64/7za.exe");
und überprüfe bitte, ob deine exe datei wirklich dieses a im namen hat.
oder meinst du mit dem zip file?
Dann gib den vollen Dateipfad an.
wenn ich bei mir das "../" Davor amche kommt ne Nullpointer weil die URL null ist. Soweit ich weiß sorgt das auch nur dafür das du im Dateisystem des Betriebssystems aufs unterste Verzeichnis gehst, also Beispielsweise auf C:\ unter Windows
Also laut meiner Kenntniss ist ../ einfach nur eine relative Pfadsangabe.
Natürlich hast du Recht und das System schaut von der untersten Ebene, aber das muss doch nicht unbedingt C:\ Das kommt doch darauf an, wo die ausgeführte Datei liegt.
7za.exe muss doch dann entsprechend auch als Datei vorliegen oder nicht?
Vielleicht ist es eine spezielle Datei? Ich weiß es ehrlich gesagt nicht.
Ich habe das ganze jetzt mal im CMD laufen lassen, dort sagt der dass er den gegebenen Pfad nicht finden kann.
Er kommt wenn ich zb. einen Ordner habe mit den Namen "Silent Hill" nicht mit dem leerschritt parat.
Muss ich dabei etwas beachten? der nimmt nur das Wort Silent!
PS:
Wenn ich das ganze aber ohne leerschritte mache mit anderne Ordnern
zb. mit G://TestOrdner und G://TestOrdner/Test.rar
dann kommt folgende Fehlermeldung:
Can not open the file as archive.
Aber das ist definitiv eine rar datei. Ich habe einfach eine .txt Datei mit WinRar in eine Rar-Datei gepackt
Wie immer in CMD/Terminal/allgemein Befehlszeilen: Bei leerzeichen in Pfaden immer den ganzen Pfad in "" packen. Und Wenn die Meldung "Can not open the file as archive" kommt, kann 7Zip die Datei nicht öffnen, kenne die Meldung selber nur zu gut. Probier das mal mit nem anderen Archiv, bzw erstmal mit nem normalen ZIP.
Wie lautet der Befehl samt Parameter, den du auf der Konsole verwendest?
Welche Fehlermeldung bekommst du?
Hast du ein rar als Beispiel, das nicht geht, damit man es evtl nachvollziehen kann?