问题是这样的,我在代码中要在sdcard的根目录创建一个目录mp3/,然后在这个目录下再创建一个文件”aaa.mp3”,然而不管是创建目录还是创建文件都会失败
这是创建目录的代码:
/**
* 在SD卡上创建指定路径
* @param dir
* @return
*/
public File createDir(String dir){
File dirFile = new File(sdCardRoot+dir);
if(dirFile.exists()){
System.out.println("目录已经存在:"+sdCardRoot+dir);
}else{
System.out.println("创建目录:"+sdCardRoot+dir);
System.out.println(dirFile.mkdirs());
}
return dirFile;
}
结果如下:
I/System.out: 创建目录:/storage/emulated/0/mp3/
I/System.out: false
创建文件的代码如下:
public File createFile(String fileName,String dir){
File file = new File(sdCardRoot+dir+File.separator+fileName);
try {
if(! file.createNewFile()){
System.out.println("创建文件失败:"+sdCardRoot+dir+File.separator+fileName);
}
} catch (IOException e) {
System.out.println("创建文件时出现错误");
}
return file;
}
这是我在AndroidManifest.xml里面声明的权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
不明白为什么已经声明了权限还是创建不了目录呢
然后我使用adb shell创建了这个目录,测试能不能创建文件,结果...
I/System.out: 目录已经存在:/storage/emulated/0/mp3/
I/System.out: 创建文件时出现错误
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/mp3/aaa.mp3 (Permission denied)
是不是还是权限的问题?求教...