Android-Android4.0不能在SD卡创建目录?

服务器管理 服务器管理 主题:1035 回复:2217

Android-Android4.0不能在SD卡创建目录?

浮生未歇 发布于 2016-12-19 字数 2201 浏览 982 回复 3

问一下,4.0不能在SD卡下创建目录吗?为什么我权限有了,还是无法创建然后报错?
是权限不对吗?
报错如下:

08-24 16:51:42.045: W/System.err(3144): java.io.IOException: open failed: EACCES (Permission denied)
08-24 16:51:42.045: W/System.err(3144): at java.io.File.createNewFile(File.java:940)
08-24 16:51:42.045: W/System.err(3144): at qinXianYuZou.Qian.Shuju.chuangjianku_xie(Shuju.java:166)
08-24 16:51:42.045: W/System.err(3144): at qinXianYuZou.Qian.QianMingActivity$click_签名按钮.onClick(QianMingActivity.java:114)
08-24 16:51:42.045: W/System.err(3144): at android.view.View.performClick(View.java:3511)
08-24 16:51:42.055: W/System.err(3144): at android.view.View$PerformClick.run(View.java:14109)
08-24 16:51:42.055: W/System.err(3144): at android.os.Handler.handleCallback(Handler.java:605)
08-24 16:51:42.055: W/System.err(3144): at android.os.Handler.dispatchMessage(Handler.java:92)
08-24 16:51:42.055: W/System.err(3144): at android.os.Looper.loop(Looper.java:137)
08-24 16:51:42.055: W/System.err(3144): at android.app.ActivityThread.main(ActivityThread.java:4424)
08-24 16:51:42.065: W/System.err(3144): at java.lang.reflect.Method.invokeNative(Native Method)
08-24 16:51:42.065: W/System.err(3144): at java.lang.reflect.Method.invoke(Method.java:511)
08-24 16:51:42.065: W/System.err(3144): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
08-24 16:51:42.065: W/System.err(3144): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
08-24 16:51:42.065: W/System.err(3144): at dalvik.system.NativeStart.main(Native Method)
08-24 16:51:42.075: W/System.err(3144): Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
08-24 16:51:42.075: W/System.err(3144): at libcore.io.Posix.open(Native Method)
08-24 16:51:42.075: W/System.err(3144): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
08-24 16:51:42.075: W/System.err(3144): at java.io.File.createNewFile(File.java:933)
08-24 16:51:42.075: W/System.err(3144): ... 13 more

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(3

灵芸 2017-10-10 3 楼

我怎么觉得那个path.mkdirs()应该是path.mkdir(),不妨试一下

浮生未歇 2017-05-29 2 楼

上面的代码没有啥问题,是不是兼容存在问题,在其他的sdk,手机上测试可以吗?手机确定没有mount的状态

可以用下面的代码调试下:

 public void writeToExternalStoragePublic(String filename, int content) {
String packageName = this.getPackageName();
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/" + packageName + "/files/";
if (isExternalStorageAvailable() && !isExternalStorageReadOnly()) {
try {
boolean exists = (new File(path)).exists();
if (!exists) {
new File(path).mkdirs();
}
// Open output stream
FileOutputStream fOut = new FileOutputStream(path + filename,true);
// write integers as separated ascii's
fOut.write((Integer.valueOf(content).toString() + " ").getBytes());
fOut.write((Integer.valueOf(content).toString() + " ").getBytes());
// Close output stream
fOut.flush();
fOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

偏爱自由 2017-01-14 1 楼

当应用程序是system时,不能访问SDCARD