无法将数据保存在SD卡目录中

时间:2018-05-23 13:00:28

标签: android

我已经编写了一个代码来查找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手机进行测试

3 个答案:

答案 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_STORAGEREAD_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
            }