首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试在sdcard中创建目录时,Android File.mkdirs()返回false

在Android中,使用File.mkdirs()方法尝试在sdcard中创建目录时,如果该方法返回false,可能是由于以下几个原因:

  1. 权限问题:首先,确保在AndroidManifest.xml文件中已经声明了适当的权限。在这种情况下,需要添加WRITE_EXTERNAL_STORAGE权限,以便应用程序可以写入外部存储器。可以在AndroidManifest.xml文件中的<manifest>标签内添加以下权限声明:
代码语言:txt
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. 外部存储器不可用:如果设备没有安装外部存储器(如SD卡)或者外部存储器不可用,尝试在sdcard中创建目录将会失败。在这种情况下,可以使用Environment.getExternalStorageState()方法来检查外部存储器的状态。如果返回的状态不是Environment.MEDIA_MOUNTED,表示外部存储器不可用。
代码语言:txt
复制
String state = Environment.getExternalStorageState();
if (!Environment.MEDIA_MOUNTED.equals(state)) {
    // 外部存储器不可用
}
  1. 目录已存在:如果尝试创建的目录已经存在,File.mkdirs()方法将返回false。在这种情况下,可以使用File.isDirectory()方法来检查目录是否已经存在。
代码语言:txt
复制
File directory = new File(Environment.getExternalStorageDirectory(), "your_directory_name");
if (directory.exists() && directory.isDirectory()) {
    // 目录已存在
}

综上所述,当Android File.mkdirs()方法返回false时,可能是由于权限问题、外部存储器不可用或目录已存在。需要确保适当的权限已声明,外部存储器可用,并且目录不存在。如果问题仍然存在,可以进一步检查日志以获取更多详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【专业技术】Android数据保存之文件保存

    前言: 上一篇文章写了Android利用SharedPreferences保存数据,SharedPreferences保存数据的时候主要是保存一些应用程序的设置信息或者少量的用户信息,并且是以key-value...文件中进行声明,但是这种默认的权限可能会在以后的Android版本变更,所以最好还是要在AndroidManifest显式的进行读取权限声明,免得以后的版本中程序出现问题,读取权限声明如下: <...: 1、File getFilesDir (); 返回一个文件目录,这个目录下保存应用程序的数据,通过 openFileOutput(String, int) 创建的文件都保存在这个文件目录下。...返回一个文件目录,这个目录存放的是应用程序缓存文件,当系统空间不足这部分文件首先会被删除。...,你可以输入null,此时返回的是你的应用程序外部存储目录的私有目录的根目录

    2.1K60

    Android 实现将Bitmap 保存到本地

    看一下源代码: class FileUtils { /** * 判断指定目录的文件夹是否存在,如果不存在则需要创建新的文件夹 * @param fileName 指定目录 * @return...返回创建结果 TRUE or FALSE */ static boolean fileIsExist(String fileName) { //传入指定的路径,然后判断路径是否存在...() 创建文件夹的意思 return file.mkdirs(); } } } 我们在这个方法传入指定的存储路径,然后判断是否存在,如果存在我们需要创建我们的指定目录,然后返回我们的创建结果...这样我们的对目录的操作就基本完成了。 完成对目录的操作,我们在看下如何完成我们的存储过程,我们需要创建一个FileOutputStream 来用于图片的写入,并且我们需要对图片进行相对应的压缩操作。...并且我们的最后需要清除我们相关的方法,这样我们的地Bitmap的操作就基本完成了。比较简单。

    9.8K20

    Android数据存储实现的5大方式

    模拟器中使用SDCard,你需要先创建一张SDCard卡(当然不是真的SDCard,只是镜像文件)。...创建SDCard可以Eclipse创建模拟器随同创建,也可以使用DOS命令进行创建,如下: Dos窗口中进入android SDK安装路径的tools目录,输入以下命令创建一张容量为2G的SDCard...-- SDCard创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS...SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表,可以 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列。...当某个值插入数据库,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。

    6.7K90

    App磁盘沙盒工具实践

    App卸载的时候,相应的app创建的文件也会被删除。 SD卡外部存储 放到sd库目录下文件,外部开放的文件,可以查看。...如:/sdcard/Android/data/com.yc.helper 第三种:其它目录 比如各个App/sdcard/目录创建目录,如支付宝创建目录:alipay/,高德创建目录:amap...当点击"清除数据" : 内部存储/data/data/com.yc.helper/cache/、 /data/data/com.yc.helper/code_cache/目录会被清空 外部存储/sdcard...4.5 10和11权限说明 Android10权限改变 比如能够直接在/sdcard/目录创建目录/文件。可以看出/sdcard/目录下,如淘宝、qq、qq浏览器、微博、支付宝等都自己建了目录。...之前文件创建弊端如下 卸载App也不能删除该目录下的文件 设置里"清除数据"或者"清除缓存"并不能删除该目录下的文件 App可以随意修改其它目录下的文件,如修改别的App创建的文件等,不安全 为什么要在

    1.7K30

    android之VOLD:staging目录作用与ASEC文件 -总结

    “ 为了保护VFAT可移动媒体上的/ android_secure目录,避免被android设备上的第三方应用程序搞乱,我们隐藏一个只读的大小为零的tmpfs的目录安装在最上层。...SDcard)上(如果它不存在的,就创建它) 3....所以当SD卡挂载于手机时,/mnt/sdcard/.android_secure 目录会被映射到/mnt/asec 目录和 /mnt/secure 目录。...其中/mnt/asec 目录主要是程序的安装目录,包括其执行文件和lib文件等;而/mnt/secure 目录中就存放程序加密后的档案。...”例如: 解密档案: 另外注意: 就是说,/mnt路径下看到的/mnt/asec目录和/mnt/secure目录并不是真正存在在手机内存或者sd卡的分区挂载目录,他们本省只是根文件系统初始化的时候创建的两个目录

    71930

    Android文件存储使用

    清除数据: 2.1 标新立异sd卡根目录建一个目录,招致用户反感 2.2 用户卸载应用后,残留目录或者数据在用户机器上,招致用户反感 需要判断两者的可用空间: sd卡存在,可用空间反而小于机身内部存储...基本操作 使用外部存储,需要的权限, AndoridManifest.xml : <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE.../Andorid/data/$packageName 在这些$appDataDir目录下的数据,app卸载之后,会被系统删除,我们应将应用的数据放于这两个目录。...外部存储,公开的数据目录。...("folder1"): /storage/sdcard0/folder1 应用数据目录下的目录 一般的$appDataDir下,会有两个目录 : 数据缓存: $cacheDir

    2.4K30

    Android教程-保存数据-保存文件

    本节课描述了如何使用 File APIAndroid文件系统读写文件. File 对象适用于用一种没有跳跃的从开始一直到结尾的方式读写大量数据....在内部存储中保存一个文件 ---- 当要在一个内部存储中保存一个文件,你可以通过调用下面两个方法的其中之一,来获取相应的目录 文件 : getFilesDir()     返回一个表示你应用的内部路径的...为了在这些目录的一个里面创建一个新的文件,你可以使用 File() 构造器,传入由上述指定了你的内部存储路径的方法提供的 File ....这回返回外部存储上你的应用的私有路径的根路径 . 请记住当用户卸载你的应用时,getExternalFilesDir() 一个路径创建的路径都会被删除掉 ....这些方法分别提供了存储卷当前有多少可用空间以及总空间. 这种信息避免填充的数据量超过一定的阈值也同样有用 .

    2.7K30
    领券