2010-05-24 4 views
7

Mit der data-storage page in the docs habe ich versucht, einige Daten auf der SD-Karte zu speichern. Dies ist mein Code:Speichern von Daten auf SD-Karte in Android

// Path to write files to 
    String path = Environment.getExternalStorageDirectory().getAbsolutePath() + 
        "/Android/data/"+ctxt.getString(R.string.package_name)+"/files/"; 
    String fname = "mytest.txt"; 

    // Current state of the external media 
    String extState = Environment.getExternalStorageState(); 

    // External media can be written onto 
    if (extState.equals(Environment.MEDIA_MOUNTED)) 
    { 
     try { 
      // Make sure the path exists 
      boolean exists = (new File(path)).exists(); 
      if (!exists){ new File(path).mkdirs(); } 

      // Open output stream 
      FileOutputStream fOut = new FileOutputStream(path + fname); 

      fOut.write("Test".getBytes()); 

      // Close output stream 
      fOut.flush(); 
      fOut.close(); 

     } catch (IOException ioe) { 
      ioe.printStackTrace(); 
     } 

Wenn ich den neuen Fileoutputstream erstellen erhalte ich eine FileNotFound Ausnahme. Ich habe auch bemerkt, dass "mkdirs()" das Verzeichnis nicht zu erstellen scheint.

Kann mir jemand sagen, was ich falsch mache?

Ich teste auf einem AVD mit einer 2GB SD-Karte und "hw.sdCard: ja", der Datei-Explorer von DDMS in Eclipse sagt mir, dass das einzige Verzeichnis auf der SD-Karte ist "LOST.DIR".

Antwort

2

auf SD-Karte vor dem Lesen oder Schreiben, vergessen Sie nicht die SD-Karte zu überprüfen montiert ist oder nicht?

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) 
Verwandte Themen