2010-05-24 12 views
7

data-storage page in the docs'u kullanarak, bazı verileri SD karta kaydetmeyi denedim. Yeni FileOutputStream oluşturduğunuzdaAndroid'de SD Karttaki verilerin saklanması

// 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(); 
     } 

Bir FileNotFound istisna olsun: Bu benim kodudur. Ayrıca "mkdirs()" dizini oluşturmuyor gibi görünüyor.

Neyi yanlış yaptığımı söyleyen var mı?

2GB sd kartlı bir AVD'yi test ediyorum ve "hw.sdCard: yes", Eclipse'deki DDMS'nin Dosya Gezgini, sdcard'daki tek dizinin "LOST.DIR" olduğunu söyledi.

cevap

2

okuma veya SD karta yazmadan önce, SD kart monte edilebilir veya edilmez kontrol etmeyi unutmayın?

Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)