1

为了写入 sdcard 上的文件,在 AndroidManifest.xml中添加android.permission.WRITE_EXTERNAL_STORAGE 。需要添加/做什么来记录设备内存(闪存/应用程序文件夹)?

写函数:

bool write_to_file(const std::string & file_name, const std::string & text)
{
     bool res = false;

     std::ofstream stream (file_name.c_str (), std::ios::out);
     stream.clear();
     if (! stream.fail()) {
         res = true;
         stream << text.c_str() << std::endl;
     }
     else {
         LOGE ("std :: ofstream: wtire error");
     }
     stream.close();

     return res;
}

调用示例

std::string file("/sdcard/text.txt");
write_to_file(file, "simple text"); // OK !!!

std::string file("./text.txt");
write_to_file(file, "simple text"); // ERROR !!!
4

1 回答 1

1

诀窍是将正确的文件名传递给本机代码。在 Android 中,您用于Context.getDir()检索手机内存中的数据文件夹位置。像这样:

File Path = Ctxt.getDir("Data");
File FName = new File(Path, "MyFile.txt");

然后以某种方式传递FName.toString()到本机库。粘贴的代码段不能直接从 Java 调用 -缺少胶水代码。

在我知道的 Android 版本中,上面的文件路径将对应于以下文件系统路径:/data/data/com.mypackage/app_Data/MyFile.txt. 但你不能依赖它。

操作系统权限禁止写入设备文件系统的任意路径。你有你的沙盒,去玩吧。这就是智能手机的方式。

于 2012-08-24T13:05:53.530 回答