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

发布于 2016-12-19 02:51:39 字数 2156 浏览 1176 评论 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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

评论(3

灵芸 2017-10-10 09:40:49

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

浮生未歇 2017-05-29 13:55:29

上面的代码没有啥问题,是不是兼容存在问题,在其他的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 16:02:21

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文