S
Sasku
Gast
Hey Leute,
ich möchte ein backup-Programm schreiben und jetzt ist es so wenn ich zwei verschiedene "test.txt" habe, eine beispielsweise auf meinem Desktop und eine andere in einem Ordner.
Jetzt funktioniert dass komplette Programm nicht wenn ich versuche die beiden verschiedenen Dateien ( welche ja schließlich ja auch verschiedene pfade haben ) zu zippen. und ich habe keine Ahnung wieso das so ist. :/
das ist die Klasse SaveListener, welcher ausgeführt wird wenn der button speichern gedrückt wird.
Was kann ich jetzt machen, damit der das ganze dennoch zippt und alles funktioniert? ..
achja .. sry dass der code da so verschoben aussieht .. das macht CB automatisch .. ;/
ich möchte ein backup-Programm schreiben und jetzt ist es so wenn ich zwei verschiedene "test.txt" habe, eine beispielsweise auf meinem Desktop und eine andere in einem Ordner.
Jetzt funktioniert dass komplette Programm nicht wenn ich versuche die beiden verschiedenen Dateien ( welche ja schließlich ja auch verschiedene pfade haben ) zu zippen. und ich habe keine Ahnung wieso das so ist. :/
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Formatter;
import java.util.List;
import java.util.Scanner;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class SaveListener implements ActionListener {
public static String speicherort_t;
private String[] dateiInText;
private static File[] files;
static Scanner s;
static Scanner leser;
static List<String> dateiInhalt;
static ArrayList<String> list = new ArrayList<String>();
Formatter x = null;
SimpleDateFormat time = new SimpleDateFormat("dd.MM.yyyy"); // Zeit wird für Zip formatiert
Date currDate = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime()); // aktuelles Datum wird genommen
private static FileInputStream fileInputStream;
@Override
public void actionPerformed(ActionEvent arg0) {
dateiInText = new String[oFlaeche.model.getSize()]; // String Array "dateiInText" wird auf die Länge der Liste gesetzt
dateiInhalt = new ArrayList<String>();
for ( int i = 0; i<oFlaeche.model.getSize(); i++) { // For-Schleife ist für das zuweisen der Links in das String Array verantwortlich
dateiInText[i] = (String) oFlaeche.model.getElementAt(i);
System.out.println(i);
System.out.println(dateiInText[i]);
}
File f = new File ("C:\\Users\\DB00033159\\Desktop\\TestText\\test.txt"); // ist die txt datei in der die schon gesicherten links der dateien steht
if (f.exists()) {
try { // bis x.close(); ist dafür verantwortlich dass die links in eine txt-datei geschrieben werden
leser = new Scanner(f); // damit sie beim nächsten start ausgelesen werden kann.
while ( leser.hasNext()){
dateiInhalt.add(leser.nextLine()) ;
}
x = new Formatter(f);
for(int i=0; i<dateiInhalt.size(); i++){
x.format("%s%n", dateiInhalt.get(i));
}
for (int i = 0; i<oFlaeche.model.getSize();i++) {
x.format("%s%n", dateiInText[i]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} else {
try {
x = new Formatter(f);
for(int i=0; i<dateiInhalt.size(); i++){
x.format("%s%n", dateiInhalt.get(i));
}
for (int i = 0; i<oFlaeche.model.getSize();i++) {
x.format("%s%n", dateiInText[i]);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
x.close();
files = new File[dateiInText.length]; // nimmt die pfade und übergibt sie später an die Methode zipFile damit sie gezippt werden
for ( int i = 0; i<dateiInText.length;i++) {
files[i] = new File(dateiInText[i]);
}
speicherort_t = oFlaeche.speicherPfad_t.getText();
zipFile(files, speicherort_t+"\\"+time.format(currDate)+".zip"); // ruft die Methode "zipFile" auf und setzt den Namen des ZipFiles
}
public static void zipFile(File[] files, String zipFilePath) { // methode zum zippen
try {
FileOutputStream fileOutputStream = new FileOutputStream(zipFilePath);
ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
for ( int i = 0; i<files.length;i++ ) {
ZipEntry zipEntry = new ZipEntry(files[i].getName());
zipOutputStream.putNextEntry(zipEntry);
fileInputStream = new FileInputStream(files[i]);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buf)) > 0 ) {
zipOutputStream.write(buf, 0, bytesRead);
}
zipOutputStream.closeEntry();
}
zipOutputStream.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} // methode zipFile Ende
} // Klasse Ende
das ist die Klasse SaveListener, welcher ausgeführt wird wenn der button speichern gedrückt wird.
Was kann ich jetzt machen, damit der das ganze dennoch zippt und alles funktioniert? ..
Ergänzung ()
achja .. sry dass der code da so verschoben aussieht .. das macht CB automatisch .. ;/