0

如果在 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()and mkdirs(),但结果是一样的。错误在哪里?

更新:

AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
4

2 回答 2

1

你打mkdirs了两次电话。第一次调用创建目录。第二次调用返回 false,因为目录已经存在。

于 2016-09-04T12:16:53.017 回答
1

您在哪个 Android 版本上运行此应用程序?来自Android 开发者网站的这句话说

如果设备运行的是Android 6.0(API 级别 23)或更高版本,并且应用的 targetSdkVersion 为 23 或更高版本,则应用在运行时向用户请求权限。用户可以随时撤销权限,所以应用每次运行都需要检查自己是否有权限

如果设备运行Android 5.1(API级别22)或更低,或者应用的targetSdkVersion为22或更低,系统会在用户安装应用时要求用户授予权限。

现在有一个危险权限的概念。这是用户在运行时需要授予的权限,并且WRITE_EXTERNAL_STORAGE是其中之一

Android Dev 网站上的这个教程将教你如何在运行时请求权限

于 2016-09-04T12:26:36.573 回答