原文:Android SD卡创建文件和文件夹失败

功能需要,尝试在本地sd卡上创建文件和文件夹的时候,报错,程序崩溃。

一般情况下,是忘记给予sd卡的读写权限。但是这里面权限已经给了,还是报错。

在网上搜索关于这方面的问题,发现有网友给出解答:

4.4之后,不能随便在sd卡上面创建文件或者文件夹了,

只能在Android/data/你的包名/,

这个路径下创建或者修改,当然,Android/data/你的包名/,这个路径你也是创建不了的,

调用下this.getExternalFilesDir(null)系统会默认给你创建,

然后就可以在Android/data/你的包名/下作读写操作了。

这里面的4.4之后不一定都存在这个问题。说法有点片面。

不过假如app需要分发到应用市场的话,还是需要考虑这方面的。

下面是获取文件路径的几种方式:

        System.out.println(Environment.getExternalStorageDirectory().getPath());
System.out.println(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));
System.out.println(getExternalCacheDir().toString()); //这个地方不会报错了
System.out.println(getExternalFilesDir(null).toString()); //这个地方不会报错了

  

后面两个才是需要的。

Android SD卡创建文件和文件夹失败的更多相关文章

  1. 转-Android 之 使用File类在SD卡中读取数据文件

    如果需要在程序中使用sdcard进行数据的存储,那么需要在AndroidMainfset.xml文件中 进行权限的配置: Java代码:   <!-- 在sd中创建和删除文件的权限 --> ...

  2. Qt SD卡 文件系统挂载、文件预览

    /********************************************************************************** * Qt SD卡 文件系统挂载. ...

  3. 获取SD卡中的音乐文件

    小编近期在搞一个音乐播放器App.练练手: 首先遇到一个问题.怎么获取本地的音乐文件? /** * 获取SD卡中的音乐文件 * * @param context * @return */ public ...

  4. Android -- 读写文件到内部ROM,SD卡,SharedPreferences,文件读写权限

    (内容整理自张泽华教程) 1. 概述 使用文件进行数据存储 首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过 ...

  5. Android从raw、assets、SD卡中获取资源文件内容

    先顺带提一下,raw文件夹中的文件会和project一起经过编译,而assets里面的文件不会~~~   另外,SD卡获取文件需要权限哦! //从res文件夹中的raw 文件夹中获取文件并读取数据 p ...

  6. Android SD卡上文件

    1. 得到存储设备的目录:/SDCARD(一般情况下) SDPATH=Environment.getExternalStorageDirectory()+"/"; 2. 判断SD卡 ...

  7. android打开存储卡(TF卡\SD卡)中的sqlite文件

    android的SDK直接支持sqlite3的API.   打开SD卡上面的sqlite数据库,不需要SQLiteOpenHelper的继承类.只需要,SQLiteDatabase中的一些静态方法.如 ...

  8. 在sd卡,创建目录和文件

    在本文中,sd卡的情况下创建的文件和目录,介绍如何创建目录和文件的重点. 1. 路径问题(以下的样例是在Java中測试的,在Android中相同适用) 1.1 假设须要在目录中创建文件的目录存在,直接 ...

  9. FileUtils【获取SD卡根目录、读写文件、移动、复制、删除文件、获取文件名、后缀名操作类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装了获取SD卡根目录路径.以及对文件读写.获取文件名等相关操作. 因为需要用到android.permission.READ_EX ...

随机推荐

  1. Oracle EBS-SQL (WIP-6):检查任务已完成但状态是发放的任务.sql

    select WE.WIP_ENTITY_NAME         ,MSI.SEGMENT1         ,MSI.DESCRIPTION         ,WDJ.CLASS_CODE     ...

  2. 常用在线工具及API网址总结

    1.小图标在线查找 https://www.iconfinder.com/ 2.在线做图,Flowchart流程图,BPMN图,Org组织结构图等 http://www.processon.com/ ...

  3. C#中通过Process启动的外部第三方程序MainWindowHandle句柄为0

    原文 C#中通过Process启动的外部第三方程序MainWindowHandle句柄为0 前几天遇到了一个在C#的winform程序中,启动一个第三方jar程序,并修改jar运行窗体的标题的问题. ...

  4. enum flags 枚举Flags标示 位运算符

    C#位运算 详见:http://wenku.baidu.com/link?url=4KUNkwuVTm8dwhmPLXeyYytmnDOJnmLG1L2C77kP-rY0On33ksQxwchoTlq ...

  5. mit java open course assignment #2

    package come; public class Marothon { public static void FirstName(String[] args1,int[] args2){ int ...

  6. python 如何判断对象是否为类(class)

    if type(att).__name__ == 'classobj':     pass else: pass

  7. Oracle 基础查询知识点

    1.Oracle 别名 如果非固定格式的列名可以如此 select last_name as name from employees 如果想显示固定格式的别名的话,则别名必须使用"" ...

  8. Pods 更新后提示Bundle资源找不到

    http://www.oschina.net/question/101347_2159145

  9. vue+webpack一些知识

    使用mac的用户需要获取权限才可以使用npm install指令 设置node目录的权限指令 sudo chmod -R 777 /usr/local/lib/node_modules/ 大家都知道国 ...

  10. gulp简单使用小记

    npm install --save-dev 写入package.json里     var gulp = require('gulp'); var less = require('gulp-less ...