# JFileChooser - Initiales Verzeichnis auswählen



## redbomber (9. Okt 2009)

Hi zusammen,
schauts mal  hier unten kommt der Code mit dem ich ein Verzeichnis mit einem FileChooser öffne


```
public void getFilesFromPath(){
	JFileChooser chooser = new JFileChooser();
	chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		
	int returnVal = chooser.showOpenDialog(model.getMainFrame());
	    
	    if (returnVal == JFileChooser.APPROVE_OPTION) {
			
		String folderOfFiles = chooser.getSelectedFile().getAbsolutePath();

			DirectoryList dirList = model.getDirectoryList();
			// get the list of all files in folder
			try {
				...
					
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
```

Da ich mit der GUI Daten anzeigen lasse ist es mühsam jedes mal wieder aufs neue das Verzeichnis zu suchen wo sich die Daten befinden.
Ich speichere bereits ein Log-File mit den aktuellen Einstellungen des Benutzers. Aber ich bekomme es nicht hin, dass der JFileChooser automatisch das beim letzten mal ausgewählte Verzeichnis öffnet.

Wisst ihr wie ich das Verzeichnis setzen kann?


----------



## SlaterB (9. Okt 2009)

http://www.java-forum.org/java-basi...andardordner-fuer-jfilechooser-festlegen.html


----------



## eRaaaa (9. Okt 2009)

setCurrentDirectory(File dir)
Sets the current directory.

suche -> jfilechooser -> zweiter thread nach deinem
bzw JFileChooser (Java Platform SE 6)



/edit: gr zu langsam, bestimmt nur weil ich nochmal extra die api zulegen wollte


----------



## Gast2 (9. Okt 2009)

Ich glaub du solltest den JFileChooser nicht jedes mal neu erzeugen dann tuts bestimmt auch so...Ich schätze dann nimmt er immer den letzten Ordner


----------



## Gast2 (9. Okt 2009)

hier ein bsp.
so öffnet sich der filechooser jedes mal dort wo du den letzten ordner genommen hast.


```
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Test extends JFrame {

	public Test() {
		super("Test");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		final JFileChooser chooser = new JFileChooser();
		JButton button = new JButton(new AbstractAction("Datei öffnen") {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				getFilesFromPath(chooser);

			}
		});
		add(button);
		pack();
	}

	public void getFilesFromPath(JFileChooser chooser) {

		chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

		int returnVal = chooser.showOpenDialog(this);

		if (returnVal == JFileChooser.APPROVE_OPTION) {

			String folderOfFiles = chooser.getSelectedFile().getAbsolutePath();

		}
	}

	public static void main(String[] args) {

		SwingUtilities.invokeLater(new Runnable() {

			@Override
			public void run() {
				new Test().setVisible(true);

			}
		});

	}

}
```


----------



## eRaaaa (9. Okt 2009)

na, aber wenn man das directory nie extra auswählen möchte/soll, kommt man an setCurrentDirectory(File dir) nicht vorbei, denn bei dir müsstest du ja zumindestens einmal den ordner auswählen. bzw, bei jedem neuen programmstart.


----------



## Gast2 (9. Okt 2009)

so wie er es haben wollte... er soll immer da starten wo der letzte ordner ausgewählt wurde... und am anfang startet er halt vom home verzeichniss


----------



## eRaaaa (9. Okt 2009)

dann ist aber dieser satz für mich unklar:


> *Ich speichere bereits ein Log-File mit den aktuellen Einstellungen des Benutzers.* Aber ich bekomme es nicht hin, dass der JFileChooser automatisch das beim letzten mal ausgewählte Verzeichnis öffnet.



bei dir würde das ja nur bedeuten, dass er NUR innerhalb der laufzeit, das letzte verzeichnis öffnen würde...so wie ich das verstanden habe, soll das auch für spätere laufzeiten des programms gespeichert werden. (daher log datei --> setCurrentDirectory(lastDir); )


----------



## Gast2 (9. Okt 2009)

eRaaaa hat gesagt.:


> dann ist aber dieser satz für mich unklar:
> 
> 
> bei dir würde das ja nur bedeuten, dass er NUR innerhalb der laufzeit, das letzte verzeichnis öffnen würde...so wie ich das verstanden habe, soll das auch für spätere laufzeiten des programms gespeichert werden. (daher log datei --> setCurrentDirectory(lastDir); )



Muss er sich wohl genauer ausdrücken...


----------

