S
Sasku
Gast
Hallo,
ich habe ein Backup-Programm und möchte ebenfalls komplette ordner sichern .. allerdings geht das in Java ja nicht.
also möchte ich wenn ein ordner ausgewählt wurde die Dateien in diesem Ordner kopieren und dann in dem zipFile ( in dem es dann gesichert wird ) neu erstellen. Allerdings ist jetzt mein Problem, dass ich nicht erkennen kann wann ich einen Ordner ausgewählt habe.
Jetzt weis ich dass bei der Methode wie ich es versuche files und directories verschiedene rückgabewerte da sind .. (heist je nachdem was ausgewählt wurde ist ein anderer festgelegter rückgabewert ) .. jetzt muss ich allerdings wissen wie dieser bei einem Ordner ( Directory ) aussieht... denn ich muss ja unterscheiden können zw. Ordner und Files.
falls es hilft .. hier noch die Methode zum kopieren:
nach dem kopieren wird das gesamte noch gezippt ^^
danke schon mal für die Hilfe!
ich habe ein Backup-Programm und möchte ebenfalls komplette ordner sichern .. allerdings geht das in Java ja nicht.
also möchte ich wenn ein ordner ausgewählt wurde die Dateien in diesem Ordner kopieren und dann in dem zipFile ( in dem es dann gesichert wird ) neu erstellen. Allerdings ist jetzt mein Problem, dass ich nicht erkennen kann wann ich einen Ordner ausgewählt habe.
Code:
public String pfadAuswahl2(){
JFileChooser fileChooser = new JFileChooser(); // erzeugt ein JFileChooser Objekt
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // setzt den selektionsmodus auf Dateien und Ordner
int result = fileChooser.showOpenDialog(fileChooser); // setzt eine int variable wenn der OK-Button gedrückt wurde im FileChooser
if (result == JFileChooser.APPROVE_OPTION) { // überprüft ob "ok" gedrückt worden ist,denn Aprove Option ( s. zeile drunter )
// gibt einen Wert zurück der gleich dem wert ist der result ist.
File selectedFile = fileChooser.getSelectedFile(); // nimmt das aktuelle File
return selectedFile.getAbsolutePath();} // übergibt den Pfad des seelecktierten Files
return null;
}
Jetzt weis ich dass bei der Methode wie ich es versuche files und directories verschiedene rückgabewerte da sind .. (heist je nachdem was ausgewählt wurde ist ein anderer festgelegter rückgabewert ) .. jetzt muss ich allerdings wissen wie dieser bei einem Ordner ( Directory ) aussieht... denn ich muss ja unterscheiden können zw. Ordner und Files.
falls es hilft .. hier noch die Methode zum kopieren:
Code:
filelist = new ArrayList<File>(); // folgende for-schleife kopiert die Dateien in den Temp-Ordner ...
for(String s : dateiInText){ // ... und bearbeitet sie, damit sie in das Zip-File kopiert werden können
String backup = s;
backup=backup.replace("\\", "/");
backup=backup.replace(" ", "%20");
Path p = Paths.get(URI.create("file:///"+backup));
s= s.replace("\\", "_");
s=s.replace(":", "");
String tmp = "file:///C:/temp/"+s;
tmp=tmp.replace(" ", "_");
Path p2 = Paths.get(URI.create(tmp));
try {
Files.copy(p, p2, REPLACE_EXISTING, COPY_ATTRIBUTES);
filelist.add(p2.toFile());
} catch (IOException e) {
e.printStackTrace();
}
}
nach dem kopieren wird das gesamte noch gezippt ^^
danke schon mal für die Hilfe!