在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;
}
任何帮助表示赞赏。
答
Environment.getExternalStorageDirectory()
并不意味着你的外部SD卡。 See API ref here:
注意:不要被“外部”一词混淆。该目录 可以更好地被认为是媒体/共享存储。它是一个文件系统,它可以容纳相对较大数量的数据,并在所有应用程序间共享(不强制执行权限)。传统上,这是SD卡的 ,但它也可以作为 设备中的内置存储设备实现,该设备与受保护的内部存储设备不同,并且可以将 作为文件系统安装在计算机上。
让您的外置SD卡更为复杂 - 看到存在的问题在这里: How can I get external SD card path for Android 4.0+?
IIRC lost.dir创建每次使用Android插任何储存时间 – Qwertie