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



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

Environment.getExternalStorageDirectory()

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

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");这样你就不需要假设分隔符或进行字符串操作

相关内容

  • 没有找到相关文章

最新更新