android - 在android的根目录下创建文件夹并写入

标签 android mkdir

我不是要写入位于/mnt/sdcard 的外部 sd。我正在尝试为可能的应用程序文件创建一个文件夹,并让其他人可以访问它们。

我有一个名为 Libra 的应用程序,它在导出数据时生成 .csv 文件,所有文件都转到/Libra/文件夹。我希望我的应用程序也能这样做。

据我所知,外部存储是 sd,内部存储是应用程序的非公共(public)场所。

如何像 Libra 那样在 android 文件系统的根目录下创建一个目录?

如果我请求外部存储,我会得到以下不需要的位置:

Environment.getExternalStorageDirectory()
/storage/emulated/0/ (in my Nexus)
/mnt/sdcard          (in the emulator)

如果我尝试在绝对路径/MyDiary 中创建文件夹,它会返回创建文件夹时出错

File folder = new File("/MyDiary");
boolean success = true;
if (!folder.exists()) {
        success = folder.mkdir();
}
if (success) {
        Toast.makeText(getBaseContext(), "Already exists", Toast.LENGTH_LONG).show();
} else {
        Toast.makeText(getBaseContext(), "Error creating directory", Toast.LENGTH_LONG).show();
        return;
}

如果我尝试检查 Libra 文件夹是否存在,它会说它不存在:

File folder = new File("/Libra");
boolean success = true;
if (!folder.exists()) {
        success = folder.mkdir();
}
if (success) {
        Toast.makeText(getBaseContext(), "Libra exists", Toast.LENGTH_LONG).show();
}

注意:我有在外部存储中写入的 list 权限。

最佳答案

根是一个虚拟磁盘。其中一些文件夹是由init.rc创建的。只有 init.rc 有权限在 ramdisk 中创建文件夹。 如果您通过 init.rc 创建文件夹,您仍然需要 init.rc 帮助在新文件夹上挂载真正的存储设备。

The init.rc file regenerated on restart 一样重新打包

关于android - 在android的根目录下创建文件夹并写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15587458/

相关文章:

Android SeekBarPreference 自定义 View

java - Android ImageButton不显示图像

Android:取消异步任务

security - 用于安全创建临时目录的 POSIX 函数是什么?

java - 循环中存在重复变量(空副本)?

android - 应用程序在获取设备 ID 时崩溃

PHP mkdir 权限

alias - 如何在 bash 别名中包含参数?

php - 在 PHP 中 0777 中是否需要 0?

shell - 在if循环内的shell脚本中找不到mkdir命令