Android 无法在SD卡目录中保存数据
我写了一个代码,以找出如果SD卡路径可用,这是像这样的Android 无法在SD卡目录中保存数据,android,Android,我写了一个代码,以找出如果SD卡路径可用,这是像这样的 File[] paths = ContextCompat.getExternalFilesDirs(context, null); if (paths.length > 1) { if (paths[1] != null) { root = paths[1].getAbsolutePath(); // for sd card } else
File[] paths = ContextCompat.getExternalFilesDirs(context, null);
if (paths.length > 1) {
if (paths[1] != null) {
root = paths[1].getAbsolutePath();
// for sd card
} else {
root = Environment.getExternalStorageDirectory().toString();
}
} else {
root = paths[0].getAbsolutePath();
}
我将数据保存在路径“/storage/4130-1912/Android/data/com.enable/files”中,但我想将数据保存在Android文件夹之外。
我还尝试在Android文件夹外创建一个目录。但无法创建。我正在使用Marhmallow版本的Lave phone中进行测试。当您使用Marshmallow时,您应该请求运行时权限(更多详细信息)。尽管如此,您可以添加
写入外部存储
和读取外部存储
,以访问外部存储。您可以找到有关如何使用的更多信息
您可以这样访问外部存储路径:Environment.getExternalStorageDirectory().getAbsoluteFile()
。如果您得到的是FileNotFoundException
,可能是因为您没有在文件之前添加额外的“/”。例如:
File file = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() +
"/your_file.txt");
我正在路径“/storage/4130-1912/Android/data/com.enable/files”中保存数据
嗯。着手你会成功的
但我想把数据保存在Android文件夹之外
这在现代安卓系统上已经不可能了
即使在Android文件夹中,你也只能为你的应用程序写入提到的私有目录
如果要写入整个micro SD卡,请使用存储访问框架。这将有助于您 正如米格拉克所说:
当您使用棉花糖时,您应该请求运行时 权限(此处有更多详细信息)。尽管如此,您可以添加
写入外部存储
和读取外部存储
用于外部存储
存储访问
只需给出您想要的路径,不要忘记运行时和清单权限
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + getPackageName() + "/yourdir");
if (f.mkdirs() || f.isDirectory())
Log.e("path",f.getPath());
//do what you want
}