Prüfen ob Datei existiert

  • 11 Antworten
  • Letztes Antwortdatum
ChrisiBoy

ChrisiBoy

Erfahrenes Mitglied
30
Also ich würde gerne prüfen ob eine Datei existiert:
Code:
 {
java.io.File file = new java.io.File("/sdcard/backups/data.png");
if (file.exists()) {
Toast.makeText(getApplicationContext(), "yes", Toast.LENGTH_SHORT).show();
}else 
{
Toast.makeText(getApplicationContext(), "false", Toast.LENGTH_SHORT).show();
}

}
Funktioniert leider nicht:(

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
An und für sich ist das aber korrekt, das sollte also so funktionieren!

Was funktioniert denn nicht? Bzw. falsch?
 
vermutlich greifst du falsch auf deine SD-Karte zu:
Probier mal folgendes:

Code:
String EXTERNAL_STORAGE = Environment.getExternalStorageDirectory().toString();
		File mPath = new File((EXTERNAL_STORAGE+"/"+"backups/data.pgn"));

if(mPath.exists())
...
 
Solange der Pfad korrekt ist, wie ihn ChrisiBoy angegeben hat, sollte es dennoch keine Probleme geben. Das Environment.getExternalStorageDirectory().toString() fügt ja nichts anderes hinzu, als bspw. "/sdcard".

Nichtsdestotrotz ist das Arbeiten über Environment.getExternalStorageDirectory imho auch besser - so gibts keine Probleme bei Geräten die einen anderen Pfad besitzen.
 
Aber anstatt einer toast anzuzeigen stürzt die app einfach ab....

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Was sagt LogCat?
 
So, habe jetzt einfach mal ein Testprojekt erstellt mit nur deinem Code, funktioniert.

Check mal, ob dein Context so korrekt ist (arbeitest du von einer Activity oder Fragment aus?)!

EDIT: Mach ggf. noch ein Try-Catch-Block um den Aufruf und lass dir im Catch-Block die Exception ausgeben (printStackTrace()).
 
Zuletzt bearbeitet:
Hast du im Manifest die Rechte für den SD Kartenzugriff gestattet? Oder bist du evtl. Emulator unterwegs, und hast dort keine SD Karte angelegt?

Ansonsten hilft nur ein try/catch Block:
Code:
    	try
    	{
    		File aFile = new File("/sdcard/backups/data.png");
    		if ( aFile.exists() )
    			Toast.makeText(this, "Gibt es", 1000);
    	}
    	catch (Exception exp)
    	{
    		Log.w("xxx",exp.getLocalizedMessage());
    	}
Setze am Besten einen Breakpoint in den Catch Block, dann kannst du auch gleich sehen, von welchem Typ die Exception ist (ich tippe auf IOException)
 
Zuletzt bearbeitet:
XploD schrieb:
Hast du im Manifest die Rechte für den SD Kartenzugriff gestattet? Oder bist du evtl. Emulator unterwegs, und hast dort keine SD Karte angelegt?

Ansonsten hilft nur ein try/catch Block:
Code:
    try
    {
    File aFile = new File("/sdcard/backups/data.png");
    if ( aFile.exists() )
    Toast.makeText(this, "Gibt es", 1000);
    }
    catch (Exception exp)
    {
    Log.w("xxx",exp.getLocalizedMessage());
    }
Setze am Besten einen Breakpoint in den Catch Block, dann kannst du auch gleich sehen, von welchem Typ die Exception ist (ich tippe auf IOException)

Die Berechtigung ist drinne, werde das testen (Handy, nicht emulator!)

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 
Mir ist da gerade noch ein Fehler an meinem Code aufgefallen:
Es nicht eigentlich
Code:
try
{
    File aFile = new File("/sdcard/backups/data.png");
    if ( aFile.exists() )
    {
        Toast myToast = Toast.makeText(this, "Gibt es",Toast.LENGTH_SHORT);
        myToast.show();
    }
}
catch (Exception exp)
{
    Log.w("xxx",exp.getLocalizedMessage());
}
heissen?
 
  • Danke
Reaktionen: ChrisiBoy
XploD schrieb:
Mir ist da gerade noch ein Fehler an meinem Code aufgefallen:
Es nicht eigentlich
Code:
try
{
    File aFile = new File("/sdcard/backups/data.png");
    if ( aFile.exists() )
    {
        Toast myToast = Toast.makeText(this, "Gibt es",Toast.LENGTH_SHORT);
        myToast.show();
    }
}
catch (Exception exp)
{
    Log.w("xxx",exp.getLocalizedMessage());
}
heissen?

Funktioniert!

Gesendet von meinem GT-I9100 mit der Android-Hilfe.de App
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
477
AnnaBauer21
AnnaBauer21
D
Antworten
8
Aufrufe
755
jogimuc
J
S
Antworten
7
Aufrufe
1.146
Silvasurf
S
AnnaBauer21
Antworten
6
Aufrufe
954
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten