Entwickler-Ecke

Dateizugriff - *.jar packen und entpacken


Nano-Ware - Sa 27.08.11 19:07
Titel: *.jar packen und entpacken
Hey,

ich würde gern eine *jar Datei entpacken. Die Datei besteht aus vielen Ordnern und Dateien. Ich würde jetzt gern die gesammte *.jar entpacken eine Datei löschen und sie am Ende wieder packen. Gibt es da eine einfache Möglichkeit, ich hab nämlich mit Streams und Dateizugriff nicht sehr viele Erfahrungen..

Danke


HeftCD - So 28.08.11 00:26

mhh, mach doch einfach sowas
(Pseudocode!!)
Zitat:

  • Shellexecute ('"WinRAR x bpla.jar "C:\User\Temp\meineJar\"');
  • open ('C:\User\Temp\meineJar\gemwünschteDatei.txt');
  • save (dito);
  • Shellexecute ('WinRAR a bpla2.jar "C:\User\Temp\meineJar\*.*"');



die Semikola u. Gänsefüßchen bei der Shellexcute sind wichtig, damit der komplette PFad mit etvl. Leerzeichen gefunden wird

gleiches geht in etwa auch mit 7zip


Nano-Ware - So 28.08.11 00:34

Das fällt leider weg. Ich möchte nämlich ohne Extratools arbeiten, die ich nicht so ohne Weiteres mitliefern kann. Ich muss nämlich davon ausgehen, dass der PC des Benutzers nicht über die Software verfügt. Ich habe mal gelesen, dass die JAR genause gepackt ist wie eine *.zip vielleicht hilft das ja beim Lösen des Problems.


Martok - So 28.08.11 03:26

Eben: du suchst also eigentlich eine Zip-Komponente. Wenn du DLLs mitliefern kannst, finden sich diese wie Sand am Meer; wenns ohne gehen soll, verwende ich gerne KAZip (keine Ahnung ob die noch gepflegt werden).


Nano-Ware - So 28.08.11 10:11

Mir währe es lieber, wenn ich ohne DLLs arbeiten könnte. Ist deine KaZip Komponente werbefrei und darf bei nichtkommernziellen Projekten mitgeliefert werden ohne, dass bei jedem Start ne Messagebox kommt, in der steht, dass ich diese Komponente verwende?


rushifell - So 28.08.11 10:28

Nano-Ware hat folgendes geschrieben:
Ist deine KaZip Komponente werbefrei und darf bei nichtkommernziellen Projekten mitgeliefert werden ohne, dass bei jedem Start ne Messagebox kommt, in der steht, dass ich diese Komponente verwende?

Ja ist sie. Ich kann die Komponente auch nur empfehlen. Wenn ich mich richtig erinnere, muss man sie bei entsprechender Anpassung nicht einmal installieren, bin mir da aber nicht mehr ganz sicher. Entpackt wird jedoch, soweit ich weiss, nur in temporäre Dateien, nicht im Speicher.

Wobei ich gerade sehe:
Zitat:
KAZip is totaly stream oriented so you can deal with data only in memory without creating temporary files


Bei Torry gibts die noch zum Download. Ist zwar von 2005, aber bei den Pack-Algorithmen ändert sich ja normalerweise nichts.


Nano-Ware - So 28.08.11 10:35

Ich hab mir die Komponente mal geladen. Die Demo sieht echt vielversprechend aus. Es ist außerdem auch nicht schlimm, dass die Komponente temporäre Dateiein braucht, denn ich habe eh vor, die *.jar zu entpacken und am ende verändert wieder zu packen.

Danke schonmal


HeftCD - So 28.08.11 10:49

Du könntest aber auch die 7zip Commandline mitliefern:
7z.exe
das steht auch in den Lizenzen drin.
Mußt halt nur irgendwo drauf hinweisen, daß er 7zip programmiert hat und nicht Du, wenn ich mich recht erinnere.

Und 7z entpackt eben überall hin, - wie WinRAR.
syntax is'n bißchen anders, darum hab ich WinRAR gewählt.

wußte ja nicht, daß Du das weitergeben möchtest.
gut - WinRAR darfste nur als Shareware beipacken.(obwohl, da ... ob man das so mit-distributieren darf ... weiß ich nich)


Aber 7z darfste, soweit ich das erinnere mit-beipacken.


Nano-Ware - Di 30.08.11 17:50

Ich hab eine andere Zip Komponente gefunden. Unter Lizens steht das untenstehende. Muss ich in meinem Programm die Verwendung der Komponente aufzeigen und was muss ich sonst noch beachten? (Die Komponente heißt Abbrevia und ist Open-Source)

(* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Abbrevia
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1997-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)


wulfskin - Fr 09.09.11 11:55

Hallo Nano-Ware,

nein, musst du nicht (MPL-FAQ Punkt 6 [http://www.mozilla.org/MPL/mpl-faq.html]), da du den Source-Code der MPL-Dateien ja nicht verändert hast.

Meine persönliche Meinung ist jedoch, dass man durchaus dankenswert erwähnen kann, dass man eine externe Komponente verwendet hat.

Grüße
Hans-Peter