为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 android 6.0+ 的内部存储中创建文件夹

无法在 android 6.0+ 的内部存储中创建文件夹

海绵宝宝撒 2021-07-16 18:05:45
我首先尝试在外部目录中创建一个文件夹Environment.getExternalStorageDirectory()在我的 AndroidManifest.xml 中,我有这两行,所以一切都应该没问题。android.permission.WRITE_EXTERNAL_STORAGEandroid.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{ } 部分,但我不知道为什么。如果你能帮助我就好了。
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

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

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


查看完整回答
反对 回复 2021-07-29
?
守着一只汪

TA贡献1872条经验 获得超3个赞

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


if(!dir.exists()){

    dir.mkdir();

}


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

startActivity(i);


查看完整回答
反对 回复 2021-07-29
  • 2 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信