在Android上写文件到SD卡(lost.dir)

问题描述:

我想写一个.csv文件到我已连接到我的android digiland平板电脑的micro SD卡上。每当我尝试向SD卡写入文件时,将SD卡插入计算机时唯一显示的文件是名为lost.dir的空文件夹。我对此做了一些研究,听起来像lost.dir是一些数据丢失时创建的文件夹。我不确定数据为什么会丢失。我一定要正确地安装和卸载SD卡,并且我不知道如何解决此问题。这里是我使用的代码:在Android上写文件到SD卡(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."); 
     } 
    } 

这里是我的isSdWriteable功能:

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

任何帮助表示赞赏。

+0

IIRC lost.dir创建每次使用Android插任何储存时间 – Qwertie

Environment.getExternalStorageDirectory()并不意味着你的外部SD卡。 See API ref here

注意:不要被“外部”一词混淆。该目录 可以更好地被认为是媒体/共享存储。它是一个文件系统,它可以容纳相对较大数量的数据,并在所有应用程序间共享(不强制执行权限)。传统上,这是SD卡的 ,但它也可以作为 设备中的内置存储设备实现,该设备与受保护的内部存储设备不同,并且可以将 作为文件系统安装在计算机上。

让您的外置SD卡更为复杂 - 看到存在的问题在这里: How can I get external SD card path for Android 4.0+?