JasonIverson 2016-12-03 08:01 采纳率: 0%
浏览 2336

不能在sdcard上创建目录?

问题是这样的,我在代码中要在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)

是不是还是权限的问题?求教...

  • 写回答

5条回答 默认 最新

  • threenewbee 2016-12-03 08:25
    关注
    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向