# Überprüfen ob Dateiendung stimmt



## simon1101 (15. Mrz 2010)

Hallo,

ich habe folgendes Problem: Ich lade einen Spielstand. Dazu lade ich eine Datei mit der Endung .mue. Ich will nun eine Abfrage haben, die mir eine Meldung anzeigt, dass keine .mue-Datei ausgewählt wurde und weiterhin das Ladefenster geöffnet bleibt. Hat einer eine Idee?


```
public static void ladeSpielstand(String dateiName, Spielfeld spielfeld, Spielverlauf spielverlauf, MuehleUIFrame muehleUI)
	{ 
		try {
			FileReader fReader = new FileReader( dateiName );
			BufferedReader buffReader = new BufferedReader ( fReader );
//			speichere die Werte für die Felder, um diese nachher in dem zweidimensionalen Array abzulegen --> verschachtelte for-Schleife ab Zeile ca 93
			int felder [] = new int [24];
//			Durchlaufe die Datei; Maximallänge bekannt = 31 Zeilen!
			for ( int load = 0; load < 31 ; load++)
			{
				try {
					String nextLine = buffReader.readLine();// --> einzelne Zeile einlesen
					Integer wert = new Integer (nextLine);
//					if ( buffReader.readLine().length() == 1) --> wofür überprüfen
//					Zwichenspeicher für den Wert aus der Datei --> muss ein Integer sein
					int zahl = wert.intValue();
//					Den Array füllen für die Steininformationen
					if ( load < 24 )
						felder[load] = zahl;
					
//					Erstellen der Felder
					if ( load == 23 ) 
						felderArrayFuellen( felder );
					
//					Wer ist am Zug festlegen
					if ( load == 24  )
					{
						if( zahl == 1)
							spielverlauf.setSpielerEinsAmZug(true);
						else if ( zahl == 2)
							spielverlauf.setSpielerEinsAmZug(false);
					}
//					Befüllen der Listen der Entfernten Steine --> noch nicht vollständig
					if ( load == 25 ) // neuen Stein erstellen und in die Liste einfügen
					{
						for (int count = 1; count <= zahl; count++ )
						{
							Spielstein spielerEins = Spielstein.create(1, 0, 0);
							Spielverlauf.entfernteSteineSpielerEins.add(spielerEins);
						}
						System.out.println("Entfernte Steine Spieler Eins: " + zahl);
						System.out.println("Steine Spieler Eins" + Spielverlauf.steineSpielerEins.size());
					}
					if ( load == 26 )
					{
						for (int count = 1; count <= zahl; count++ )
						{
							Spielstein spielerZwei = Spielstein.create(2, 0, 0);
							Spielverlauf.entfernteSteineSpielerZwei.add(spielerZwei);
						}
						System.out.println("Entfernte Steine Spieler Zwei: " + zahl);
						System.out.println("Steine Spieler Zwei" + Spielverlauf.steineSpielerZwei.size());
					}
//					Spielphase  ermitteln
					if ( load == 27 ) 
					{
						if ( zahl == 1 )
						{
							spielverlauf.setSetzphase(true);
							spielverlauf.steinSetzenListenerSetzen();
						}
						else
							spielverlauf.setSetzphase(false);
					}
					if ( load == 28 )
					{
						if ( zahl == 2 )
						{
							spielverlauf.setZugphase( true );
							spielverlauf.markierenListenerSetzen();
						}
						else
							spielverlauf.setZugphase( false );
					}
					if ( load == 29 )
					{
						if ( zahl == 3 )
							spielverlauf.setEndphaseSpielerEins(true);
						else 
							spielverlauf.setEndphaseSpielerEins(false);
					}
					if ( load == 30 )
					{
						if ( zahl == 3 )
							spielverlauf.setEndphaseSpielerZwei(true);
						else 
							spielverlauf.setEndphaseSpielerZwei(false);
					}			
				
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
		} catch (FileNotFoundException e) {
			System.out.println("Es Konnte keine Datei geöffnet werden!");
			e.printStackTrace();
		}
```

Gruß
Simon


----------



## madboy (15. Mrz 2010)

Falls du einen JFileChooser verwendest, hat der meines Wissens eine Methode 
	
	
	
	





```
accept
```
, der du übergeben kannst welche Dateien du auswählen können willst. Er zeigt dann nur diejenigen Dateien an und lässt sie auch auswählen, die du über accept definiert hast.

Sonst: mittels String#substring oder ähnlichem prüfen, ob letzte 3 Zeichen "mue" sind. Falls nein: Fenster mit Meldung anzeigen.


----------



## Murray (16. Mrz 2010)

madboy hat gesagt.:


> Sonst: mittels String#substring oder ähnlichem prüfen, ob letzte 3 Zeichen "mue" sind.


Einfacher:

```
if ( (dateiName != null) && dateiName.endsWith( ".mue")) {
  //OK
} else {
  //Fehler
}
```
Falls das Dateisystem (wie unter Windows) nicht zwischen Groß- und Kleinschreibung unterscheidet:

```
if ( (dateiName != null) && dateiName.toLowerCase().endsWith( ".mue")) {
  //OK
} else {
  //Fehler
}
```


----------



## simon1101 (16. Mrz 2010)

Danke Murray,

klappt super.

Gruß
Simon


----------



## FArt (16. Mrz 2010)

FileFilter (Java 2 Platform SE v1.4.2)


----------

