如果在Android应用程序的外部存储中创建目录,我使用此代码:
File mDirectory = new File(Environment.getExternalStorageDirectory() + "/myDir");
if (!mDirectory.exists()) {
mDirectory.mkdirs();
if (!mDirectory.mkdirs()) {
Log.e("App", "failed to create directory");
}
}
但是目录没有创建,错误消息一直显示在logcat
:
App: failed to create directory
我同时使用mkdir()
和mkdirs()
,但结果相同。错误在哪里?
更新
的AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
答案 0 :(得分:1)
您正在拨打mkdirs
两次。第一个调用创建目录。第二个调用返回false,因为该目录已存在。
答案 1 :(得分:1)
您运行此应用的Android版本是什么? Android Developer Website引用的引用
如果设备运行 Android 6.0(API级别23)或更高级别,并且应用的targetSdkVersion为23或更高,则应用程序在运行时请求用户的权限。用户可以随时撤消权限,因此应用程序需要在每次运行时检查其是否具有权限。
如果设备运行Android 5.1(API级别22)或更低版本,或者应用程序的targetSdkVersion为22或更低,系统会要求用户在用户安装应用程序时授予权限。
现在有Dangerous permissions的概念。这是用户在运行时需要授予的权限,WRITE_EXTERNAL_STORAGE
是其中之一
Android Dev网站上的这个tutorial将教你如何在运行时请求权限