2017-02-20 16 views
1

私はAndroidのDigilandタブレットに接続したmicroSDカードに.csvファイルを書き込もうとしています。私がSDカードにファイルを書き込もうとすると、そのファイルをコンピュータに接続するときにSDカードに表示されるのは、lost.dirという名前の空のフォルダだけです。私はこれについていくつかの研究を行っており、lost.dirはいくつかのデータが失われたときに作成されたフォルダであると聞こえます。なぜデータが失われているのかわかりません。私はSDカードを正しくマウントしてアンマウントすることを確かめます、そして、私はこの問題を解決するために何をすべきかについて紛失しています。すべてのヘルプは高く評価されAndroidでSDカードにファイルを書き込む(lost.dir)

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

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."); 
     } 
    } 

ここに私のisSdWriteable機能である:ここで私が使用していたコードです。

+0

IIRC lost.dir作成されますが、アンドロイドの中で任意のストレージを接続するたびに – Qwertie

答えて

0

Environment.getExternalStorageDirectory()は、外付けSDカードを意味するものではありません。 See API ref here

注:ここでは「外部」と混同しないでください。このディレクトリ は、メディア/共有ストレージと考えることができます。これは、 が比較的大量のデータを保持できるファイルシステムであり、すべてのアプリケーションで共有されます(許可は適用されません)。従来、これはSDカードの ですが、保護された内部ストレージとは別の デバイスに内蔵ストレージとして実装することもでき、 をコンピュータ上のファイルシステムとしてマウントすることもできます。

取得外部SDカードは、より複雑である - ここでは、既存の質問を参照してください。 How can I get external SD card path for Android 4.0+?

関連する問題