Java Android无法访问mkdirs()
我知道已经有人问过类似的问题,但我已经试着去做我在那里读到的 我正在编写一个需要访问和创建一些文件的应用程序,在我的Java Android无法访问mkdirs(),java,android,storage,android-file,Java,Android,Storage,Android File,我知道已经有人问过类似的问题,但我已经试着去做我在那里读到的 我正在编写一个需要访问和创建一些文件的应用程序,在我的onCreate()方法中,我调用directoryMaker()方法: static final String externalPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()+"/MyFolder"; //This is
onCreate()
方法中,我调用directoryMaker()
方法:
static final String externalPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()+"/MyFolder"; //This is a global variable
private void directoryMaker (){
if(externalIsMounted()){
File external = new File(externalPath);
if(!external.exists()){
if(external.mkdirs()){
Log.i("GalleryActivity", "Folder created");
}
else{
Log.e("GalleryActivity", "Folder not created");
}
}
}
}
private boolean externalIsMounted(){
return Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
}
这是我的清单(至少是相关部分):
运行它会出现“文件夹未创建”错误:我不知道此时会出现什么问题
对不起,我的英语不好,这不是我的第一语言
编辑1
整个AndroidManifest.xml
尝试以下构造函数,而不是自己编写路径
File external = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyFolder");
然后调用mkdir()
方法。您不需要
READ\u EXTERNAL\u STORAGE
权限,因为WRITE\u EXTERNAL\u STORAGE
隐式使用它 试试这个:
File root = Environment.getExternalStorageDirectory();
String dirPath = root.toString() + "/Pictures/Your folder/";
File dir = new File(dirPath);
if (!dir.exists()) {
dir.mkdirs();
}
首先让我原谅一下,我明白我的问题有多愚蠢:我是Android编程新手,所以
无论如何,代码没有任何问题,但我在AndroidStudio emulator上运行它,我必须在设置->应用程序菜单中为应用程序授予权限。您将它们放在AndroidManifest的何处?你能给我们看一下完整的舱单吗?在标签里,不管怎样,我已经在问题中添加了它。还有:为什么这个问题一直被忽略?有什么问题吗?试过了,但它也给了我同样的问题。也感谢您的许可信息。
File external = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyFolder");
File root = Environment.getExternalStorageDirectory();
String dirPath = root.toString() + "/Pictures/Your folder/";
File dir = new File(dirPath);
if (!dir.exists()) {
dir.mkdirs();
}