Java 无法在android 6.0+;上的内部存储中创建文件夹;
我首先尝试在外部目录中创建一个文件夹Java 无法在android 6.0+;上的内部存储中创建文件夹;,java,android,path,storage,internal-storage,Java,Android,Path,Storage,Internal Storage,我首先尝试在外部目录中创建一个文件夹 Environment.getExternalStorageDirectory() 在我的AndroidManifest.xml中,我有这两行代码,所以一切都应该正常 android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE 但现在我知道,每次用户安装应用程序时,你都必须询问他们的权限,如果他不给我权限,我的应用程序将无法运行 所以我知道,在内部存
Environment.getExternalStorageDirectory()
在我的AndroidManifest.xml中,我有这两行代码,所以一切都应该正常
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE
但现在我知道,每次用户安装应用程序时,你都必须询问他们的权限,如果他不给我权限,我的应用程序将无法运行
所以我知道,在内部存储器中写入内容不需要许可。
所以我用了命令
getApplicationContext().getFilesDir()
对存储器进行读/写操作。
但它在安卓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);
创建文件对象不会创建目录。为此,需要调用
dir.mkdirs()
另外,获取文件的正确方法是
File dir=new File(getApplicationContext().getFilesDir,“testFile”)
这样你就不需要使用分隔符或进行字符串操作了,但它在我的Android 5.0手机上有效,但在8.0手机上无效:/抱歉,我写错了。。。每次我运行应用程序时!dir.exists()为true。在我的应用程序中,此代码重复多次以检查是否存在目录,但每次我进入if部分时,它都应该创建目录,但在未创建文件时执行其他代码我创建文件的代码是
。这不是创建一个文件而是一个目录。我进入了else{}部分,我不知道为什么代码>那么目录已经存在了。对不起,我写错了。。。每次我运行应用程序时!dir.exists()为true。在我的应用程序中,此代码重复多次以检查是否存在目录,但每次我进入if部分时,它都应该创建目录,但在未创建文件时执行其他代码,而在未创建文件时执行其他代码–
???此外,没有其他代码。什么意思?有那么难解释发生了什么吗?