制作外部目录android

时间:2016-09-04 12:11:33

标签: android mkdir mkdirs

如果在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"/>

2 个答案:

答案 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将教你如何在运行时请求权限