我已经编写了一个代码来查找SD卡路径是否可用,就像这样
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手机进行测试
答案 0 :(得分:0)
当您使用Marshmallow时,您应该请求运行时权限(更多详细信息here)。尽管如此,您可以为外部存储访问添加A = [sin(t) 0;0 cos(t)];
B = [0.5; 0.0];
C = [1 0; 0 1];
G = ss(A,B,C,[]);
step(G,t)
x0 = [-1;0;2];
initial(G,x0)
和WRITE_EXTERNAL_STORAGE
。您可以找到有关如何here。
您可以像这样访问外部存储路径:READ_EXTERNAL_STORAGE
。如果您收到Environment.getExternalStorageDirectory().getAbsoluteFile()
,可能是因为您没有添加其他" /"在你的文件之前。例如:
FileNotFoundException
答案 1 :(得分:0)
我将数据保存在路径" /storage/4130-1912/Android/data/com.enable/files"
确定。前进。你会成功的。
但我想在Android文件夹之外保存数据。
在现代Android系统上,这是不可能的。
即使在Android文件夹中,您也只能为您的应用程序写入提到的私人目录。
如果您想要写入整个micro SD卡,请使用存储访问框架。
答案 2 :(得分:0)
这会对您有所帮助
正如miguelarc所说:
当您使用Marshmallow时,您应该请求运行时 权限(此处有更多详细信息)。尽管如此,你可以添加 外部
WRITE_EXTERNAL_STORAGE
和READ_EXTERNAL_STORAGE
存储访问。
File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + getPackageName() + "/yourdir");
if (f.mkdirs() || f.isDirectory())
Log.e("path",f.getPath());
//do what you want
}