Android 无法在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

我写了一个代码,以找出如果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 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
            }