2017-02-20 2 views
1

Ich versuche, eine .csv-Datei auf eine Micro-SD-Karte zu schreiben, die ich mit meinem Android Digiland-Tablet verbunden habe. Immer wenn ich versuche, eine Datei auf die SD-Karte zu schreiben, wird auf der SD-Karte nur ein leerer Ordner mit dem Namen lost.dir angezeigt, wenn ich ihn an den Computer anschließe. Ich habe einige Nachforschungen darüber gemacht und es klingt wie verloren.dir ist ein Ordner, der erstellt wird, wenn Daten verloren gehen. Ich bin mir nicht sicher, warum die Daten verloren gehen. Ich sorge dafür, die SD-Karte richtig zu mounten und unmounten, und ich bin ratlos, was zu tun ist, um dieses Problem zu beheben. Hier ist der Code Ich verwende:Datei auf SD-Karte auf Android schreiben (lost.dir)

String string = 
      " \n" + teamNum + "," + matchNum + ","+ gearPoints + "," + climbScored 
        + "," + ballsHigh + "," + ballsLow + "," + gearsAuto + "," + 
      hiBallsAuto + "," + lowBallsAuto + "," + driveForward + ""; 

    if(isSdWriteable()) { 
     File sdCard = Environment.getExternalStorageDirectory(); 
     File file = new File(sdCard, "scout9000.csv"); 

     try { 
      FileOutputStream outputStream = new FileOutputStream(file); 
      outputStream.write(string.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      System.out.println("Error writing file."); 
     } 
    } 

Hier ist meine isSdWriteable Funktion:

public boolean isSdWriteable() { 
    String state = Environment.getExternalStorageState(); 
    if(Environment.MEDIA_MOUNTED.equals(state)) { 
     return true; 
    } 
    return false; 
} 

Jede Hilfe sehr geschätzt wird.

+0

iirc lost.dir wird jedes Mal, wenn Sie die Speicherung in Android-Plug erstellt – Qwertie

Antwort

0

Environment.getExternalStorageDirectory() bedeutet nicht Ihre externe SD-Karte. See API ref here:

Hinweis: nicht durch das Wort "extern" hier verwechselt werden. Dieses Verzeichnis kann besser als Media/Shared Storage betrachtet werden. Es ist ein Dateisystem, das eine relativ große Menge an Daten enthalten kann und die über alle Anwendungen geteilt wird (erzwingt keine Berechtigungen). Traditionell ist dies eine SD-Karte, aber es kann auch als integrierter Speicher in einem Gerät implementiert werden, das sich von dem geschützten internen Speicher unterscheidet und als Dateisystem auf einem Computer bereitgestellt werden kann.

Wie Sie Ihre externe SD-Karte ist komplizierter - siehe hier vorhandene Frage: How can I get external SD card path for Android 4.0+?