繁体   English   中英

无法在Android 6.0以上版本的内部存储中创建文件夹

[英]Unable to create a folder in internal storage on android 6.0+

我首先尝试在外部目录中创建一个文件夹

Environment.getExternalStorageDirectory()

在我的AndroidManifest.xml中,我有这两行,所以一切都应该没问题。

android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE

但是现在我知道您必须在用户每次安装该应用程序时都向用户询问权限,如果他不给我权限,我的应用程序将无法运行。

所以我知道,您不需要在内部存储器中写入的权限。 所以我用了命令

getApplicationContext().getFilesDir()

读取/写入存储。 但它不能在装有Android 6.0或更高版本的设备上使用。 我创建文件的代码是

String mainPath = getApplicationContext().getFilesDir().getAbsolutePath() + "//testFile/";
    File dir = new File(mainPath);

    if(!dir.exists())
    {
        dir.mkdir();

        Intent i = new Intent(getApplicationContext(),MainActivity.class);
        startActivity(i);
    } else { }

每当我运行该应用程序时,我都会进入else {}部分,我也不知道为什么。 如果您能帮助我,那就太好了。

谢谢!

这意味着该文件存在。 如果文件不存在,请创建它,然后开始您的活动。

if(!dir.exists()){
    dir.mkdir();
}

Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);

创建File对象不会创建目录。 为此,您需要调用dir.mkdirs()

另外,获取文件的正确方法是File dir = new File(getApplicationContext().getFilesDir, "testFile"); 这样,您无需假设分隔符或进行字符串操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM