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

时间:2017-02-20 23:19:44

标签: android android-sdcard sd-card

我正在尝试将.csv文件写入已连接到我的Android Digiland平板电脑的micro SD卡上。每当我尝试将文件写入SD卡时,当我将SD卡插入计算机时,唯一显示在SD卡上的是名为lost.dir的空文件夹。我对此做了一些研究,听起来像lost.dir是一些数据丢失时创建的文件夹。我不确定数据丢失的原因。我确保正确安装和卸载SD卡,我不知道如何解决这个问题。这是我正在使用的代码:

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;
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Environment.getExternalStorageDirectory()并不代表您的外部SD卡。 See API ref here

  

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

获取外部SD卡更复杂 - 请参阅此处的现有问题:  How can I get external SD card path for Android 4.0+?