0

可能重复:
SDCard 内容存在但看不到它们

手机运行 Linux Kernel(2.6.31) 并插入 SD 卡。

[ISSUE] 当数据写入 SD 卡(写入系统调用)时,写入成功返回。但是,当卡(通过电话)作为 PC 上的大容量存储设备访问时,看不到数据。

只有在物理移除卡并重新插入,然后在 PC 上将其作为大容量存储设备访问后,才会显示写入的数据。写入数据后尝试 fsync()。还是不会显示。

内核在将数据写入 SD 卡之前是否维护缓存?如果是这样,我如何确保它已刷新到 SD 卡?

[编辑] 移除标签 MMC

4

1 回答 1

0

您的问题是存在 SDCard 内容的完全相同的副本,但看不到它们- PC 正在显示从 MTP 界面返回的内容。

存根代码来执行使文件出现所需的操作:

进口:

import android.media.MediaScannerConnection;
import android.os.Environment;
import android.util.Log;
import java.io.File;

存根代码:

File f = new File(Environment.getExternalStorageDirectory().getPath() + "/hello_nurse.txt");
if (! f.exists()) {
    try {
        f.createNewFile();
        String[] files = new String[1];
        files[0] = Environment.getExternalStorageDirectory().getPath() + "/hello_nurse.txt";
        String[] mimes = new String[1];
        mimes[0] = "text/plain";
        MediaScannerConnection.scanFile(getApplicationContext(), files, mimes, null);
    } catch (Exception ex) {
        Log.e("SD Create", "Failed to create file", ex);
        return;
    }
} else {
    Log.e("SD Create", "File is already present");
}
于 2012-09-05T15:20:14.500 回答