zip erstellen

Status
Nicht offen für weitere Antworten.

magic_halli

Bekanntes Mitglied
Hi,

ich will ganz einfach ein ZIP-Archiv von sog. *.dxf-Dateien in einem Verzeichnis anlegen. Ich bin erstmal soweit, als das ich mir alle dxf-Dateien in ein Array lese. Jetzt will ich jede Datei, die im Array ist, zu einem ZIP-Archiv hinzufügen - welches natürlich erstellt werden soll!
Leider komme ich nicht ganz vorwärts mit der zip-Erstellung. Es gibt zwar einige Posts dazu, doch irgendwie sind immer wieder verschiedenste Varianten angesprochen, die irgendwie für mich nicht passen.
Hier erstmal mein bisheriger Code:
Code:
path = curSession.GetCurrentDirectory();
    		find = ".dxf";
    		File f = new File(path);
    		File[] fileArray = f.listFiles();
    		if(fileArray != null){
    			for(int i=0;i<fileArray.length;i++){
    				if(fileArray[i].getName().indexOf(find) != -1){
    					//hier soll jedes File vom Array zum ZIP hinzugefügt werden
    				}
    			}
    		}
Mein Problem, wie erstelle ich erstmal solch ein ZIP-Archiv, um dann wie die Dateien hinzuzufügen???

Vielen Dank.
 

magic_halli

Bekanntes Mitglied
...so, ich erhalte jetzt zwar ein zip-File im Verzeichnis, doch wenn ich es öffnen will, bekomme ich eine Fehlermeldung (Linux), die da lautet: "Fehler beim Laden des Archivs".
Die Fehlerdetails zeigen folgendes an:
"[/home/dev/Sachnummer_ZIP]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archi
"

Hier ist mal mein Code:
Code:
       String path = curSession.GetCurrentDirectory();  //liest den Pfad aus - works fine!
    	String find = ".dxf";
    	
    	int read = 0;
       FileInputStream in;
       byte[] data = new byte[1024];
    	try{
 		
    		//Zip-Archiv mit Stream verbinden
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(path+"/Sachnummer_ZIP"));
            //Archivierungs-Modus setzen
            out.setMethod(ZipOutputStream.DEFLATED);

    		File f = new File(path);
    		File[] fileArray = f.listFiles();
    		if(fileArray != null){
    			for(int i=0;i<fileArray.length;i++){
    				if(fileArray[i].getName().indexOf(find) != -1){	
    					//Eintrag für neue Datei anlegen
    		            ZipEntry entry = new ZipEntry(fileArray[i].getName());
    		            in = new FileInputStream(fileArray[i]);
    		            // Neuer Eintrag dem Archiv hinzufügen
    		            out.putNextEntry(entry);
    		            // Hinzufügen der Daten zum neuen Eintrag
    		            while((read = in.read(data, 0, 1024)) != -1)
    		              out.write(data, 0, read);
    		            //Neuen Eintrag abschließen
    		            out.closeEntry();
    		            in.close();
    				}
    			}
    		}
    	}catch(Exception err){
    		 JOptionPane.showMessageDialog(null, err.toString());
    	}
Wie schon gesagt, ich will alle *.dxf-Files in einem bestimmten Verzeichnis (hier Variable path) in ein zip-Archive packen.
Was hab ich falsch gemacht???
 
G

Guest

Gast
Du hast ein close() vergessen, dann klappt's auch (zumindest bei mir):


Code:
String path = "F:/test";
final String suffix = ".jpg";
int read = 0;
FileInputStream in;
byte[] data = new byte[1024];

try
{
	//Zip-Archiv mit Stream verbinden
	ZipOutputStream out = new ZipOutputStream(
		new FileOutputStream( path + "/output.zip" ) );
	
	//Archivierungs-Modus setzen
	out.setMethod( ZipOutputStream.DEFLATED );

	File dir = new File( path );
	File[] fileArray = dir.listFiles( new FileFilter()
	{
		public boolean accept( File f )
		{
			if ( f.isFile() && f.getName().toLowerCase().endsWith( suffix ) )
			{
				return true;
			}
			return false;
		}
		
	} );
	
	if ( fileArray != null )
	{
		for ( int i = 0; i < fileArray.length; i++ )
		{	
			//Eintrag für neue Datei anlegen
			ZipEntry entry = new ZipEntry( fileArray[i].getName() );
			in = new FileInputStream( fileArray[i] );
			// Neuer Eintrag dem Archiv hinzufügen
			out.putNextEntry( entry );
			// Hinzufügen der Daten zum neuen Eintrag
			while( (read = in.read( data, 0, 1024 )) != -1 )
				out.write( data, 0, read );
			//Neuen Eintrag abschließen
			out.closeEntry();
			in.close();
		}
		
		out.close();
	}
}
catch( Exception err )
{
	JOptionPane.showMessageDialog( null, err.toString() );
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
JaVaN0oB Bruchklasse erstellen Java Basics - Anfänger-Themen 9
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
K Objektdiagramm erstellen Java Basics - Anfänger-Themen 3
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
E Filmsammlung erstellen Java Basics - Anfänger-Themen 6
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
K Quersumme erstellen Java Basics - Anfänger-Themen 7
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
D Zusammenhängenden Graphen für Gleisnetz erstellen Java Basics - Anfänger-Themen 13
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
M Writer für unterschiedliche Obj/inbt/double erstellen? Java Basics - Anfänger-Themen 1
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
P Fractal erstellen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben