Java Directories Rückgabewert JFileChooser

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.

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!
 
ah gut .. ja das wusste ich nich und hab ich anscheinend einfach übersehen als ich geschaut habe ob es sowas gibt.. danke :)
 
Sasku schrieb:
ich habe ein Backup-Programm und möchte ebenfalls komplette ordner sichern .. allerdings geht das in Java ja nicht.

Nur damit niemand auf falsche Gedanken kommt: das geht in Java genau so gut, wie mit anderen GP-Sprachen.


SaxnPaule schrieb:
JFileChooser.getSelectedFile() gibt dir ein java.io.File zurück.

java.io.File hat doch die Methode isDirectory()

Darüber sollte sich das doch erkennen lassen. oder habe ich was falsch verstanden?

Passt! ;)
 
Noch eine kleine Anmerkung. Falls es dein Projekt zulässt, kannst du dir mal FileUtils von Apache anschauen.
Damit lassen sich die ganzen Datei Operationen sehr komfortabel handhaben.

http://commons.apache.org/proper/commons-io/

das bringt z.B. copyDirectory(...) mit ;)
 
Zuletzt bearbeitet:
ja kenne ich schon .. kann ich aber leider nicht so verwenden .. aber danke ;)
 
Zurück
Oben