获取 sqlite系统数据库路径

方式1:

ApkInfo apkInfo = new ResourceUtil(context).getApkInfo();

APP_PATH = new StringBuilder("/data/data/").append(apkInfo.packageName)

.toString();

SHARED_PREFS = APP_PATH + "/shared_prefs";

DATABASES = APP_PATH + "/databases/"+"database.db";

方式2:context.getDatabasePath("database.db");

例子:

private StringBuilder getFilePath( ){

StringBuilder filePathBuilder = new StringBuilder( );



// 返回通过Context.openFileOutput()创建和存储的文件系统的绝对路径,应用程序文件,这些文件会在程序被卸载的时候全部删掉。

filePathBuilder.append( "getFilesDir == " ).append( getFilesDir( ) ).append( "\n" );

// 返回应用程序指定的缓存目录,这些文件在设备内存不足时会优先被删除掉,所以存放在这里的文件是没有任何保障的,可能会随时丢掉。

filePathBuilder.append( "getCacheDir == " ).append( getCacheDir( ) ).append( "\n" );

// 这是一个可以存放你自己应用程序自定义的文件,你可以通过该方法返回的File实例来创建或者访问这个目录,注意该目录下的文件只有你自己的程序可以访问。

filePathBuilder.append( "getDir == " ).append( getDir("test.txt", Context.MODE_WORLD_WRITEABLE) ).append( "\n" );



/* 需要写文件权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> */

// 调用该方法会返回应用程序的外部文件系统(Environment.getExternalStorageDirectory())目录的绝对路径,它是用来存放应用的缓存文件,它和getCacheDir目录一样,目录下的文件都会在程序被卸载的时候被清除掉。 

filePathBuilder.append( "getExternalCacheDir == " ).append( getExternalCacheDir( ) ).append( "\n" );

// 这个目录是与应用程序相关的外部文件系统,它和getExternalCacheDir不一样的是只要应用程序存在它就会一直存在,这些文件只属于你的应用,不能被其它人访问。同样,这个目录下的文件在程序被卸载时也会被一同删除。

filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( "/" ) ).append( "\n" );



/**

* 和上面的方法一样,只是返回的是其目录下某一类型的文件,这些类型可以是:

* Environment#DIRECTORY_MUSIC 音乐

    * Environment#DIRECTORY_PODCASTS 音频

    * Environment#DIRECTORY_RINGTONES 铃声

    * Environment#DIRECTORY_ALARMS 闹铃

    * Environment#DIRECTORY_NOTIFICATIONS 通知铃声

      * Environment#DIRECTORY_PICTURES 图片

    * Environment#DIRECTORY_MOVIES 视频



* */

filePathBuilder.append( "getExternalFilesDir == " ).append( getExternalFilesDir( Environment.DIRECTORY_PICTURES ) ).append( "\n" );



// 保存通过Context.openOrCreateDatabase 创建的数据库文件

filePathBuilder.append( "getDatabasePath == " ).append( getDatabasePath( DATA_BASE_NAME ) ).append( "\n" );

// 返回android 安装包的完整路径,这个包是一个zip的压缩文件,它包括应用程序的代码和assets文件

filePathBuilder.append( "getPackageCodePath == " ).append( getPackageCodePath( ) ).append( "\n" );

// 返回android 安装包的完整路径,这个包是一个ZIP的要锁文件,它包括应用程序的私有资源。

filePathBuilder.append( "getPackageResourcePath == " ).append( getPackageResourcePath( ) ).append( "\n" );

// 返回应用程序的OBB文件目录(如果有的话),注意如果该应用程序没有任何OBB文件,这个目录是不存在的。

filePathBuilder.append( "getObbDir == " ).append( getObbDir( ) ).append( "\n" );



return filePathBuilder;

}

结果:





Activity提供了getCacheDir()和getFilesDir()方法:

getCacheDir()方法用于获取/data/data//cache目录

getFilesDir()方法用于获取/data/data//files目录

将文件写入SD卡内:

获取SDCard的状态:

Environment.getExtemalStorageState()

EnvironmentMEDIA_MOUNTED手机装有SDCard,并且可以进行读写

获取SDCard的目录:Environment.getExtemalStorageDirectory()

File saveFile=new File("/sdcard/zhzhg.txt");

或:File sdCardDir=new File("/sdcard");//获取SD卡目录

File saveFile-new File(sdCardDir,"zhzhg.txt");

FileOutputStream outStream = new FileOutputStream(saveFile);

outStream.write("文件的读写".getBytes());

outStream.close();

目录文件替换:

/**

* 复制目录



* @param srcDir

*            源目录

* @param destDir

*            目标目录

* @param successMsg

*            复制成功的提示语

* @param failedMsg

*            复制失败的提示语

* @return 当复制成功时返回true, 否则返回false。

*/

private final boolean copyDir(String srcDir, String destDir,

String successMsg, String failedMsg) {

try {

FileUtils.copyDirectory(new File(srcDir), new File(destDir));

} catch (IOException e) {

e.printStackTrace();

// showToast(failedMsg);

return false;

}

// showToast(successMsg);

return true;

}

android context获取目录详解的更多相关文章

  1. Android本地化资源目录详解

    我们可以设想,有两个不同分辨率的手机(320*480和480*800)要使用一些图像资源,为了使图像不失真,就需要为不同分辨率的手机指定不同的图像,为此就需要建立不同的资源目录. 在res目录中建立了 ...

  2. Android jniLibs下目录详解(.so文件)

    http://www.jianshu.com/p/b758e36ae9b5 最近又研究了一下,参考了一下:三星/联发科等处理器规格表 更新时间:2017年5月手机CPU架构体系分类及各大厂商 PS:我 ...

  3. Android屏幕适配问题详解

    上篇-Android本地化资源目录详解 :http://www.cnblogs.com/steffen/p/3833048.html 单位: px(像素):屏幕上的点. in(英寸):长度单位. mm ...

  4. Android SDK 目录详解(转)

    Android SDK目录结构和工具介绍是本文要介绍的内容,主要是来了解并学习Android SDK的内容,具体关于Android SDK内容的详解来看本文. Android SDK目录下有很多文件夹 ...

  5. Android开发之MdiaPlayer详解

    Android开发之MdiaPlayer详解 MediaPlayer类可用于控制音频/视频文件或流的播放,我曾在<Android开发之基于Service的音乐播放器>一文中介绍过它的使用. ...

  6. 《Android NFC 开发实战详解 》简介+源码+样章+勘误ING

    <Android NFC 开发实战详解>简介+源码+样章+勘误ING SkySeraph Mar. 14th  2014 Email:skyseraph00@163.com 更多精彩请直接 ...

  7. 给 Android 开发者的 RxJava 详解

    我从去年开始使用 RxJava ,到现在一年多了.今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 .而最近这几个 ...

  8. Android中Intent组件详解

    Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...

  9. Android的init过程详解(一)

    Android的init过程详解(一) Android的init过程(二):初始化语言(init.rc)解析 本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10 本文及后续几 ...

随机推荐

  1. 【BZOJ2588】Count On a Tree(主席树)

    [BZOJ2588]Count On a Tree(主席树) 题面 题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第 ...

  2. [Luogu2664]树上游戏

    题面戳我 sol 点分.我们面临的最主要一个问题,就是如何在\(O(n)\)的时间内算出所有LCA为根的点对的贡献,还要分别累加到它们自己的答案中去. \(num_i\):每一种颜色的数量.你可以认为 ...

  3. [Luogu3377]【模板】左偏树(可并堆)

    题面戳我 题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数 ...

  4. LuoguP3701 「伪模板」主席树

    题面 这个题很有意思啊... 其实是道最大流板子题,只连byx会赢的边,S向byx连,另一个连T... 注意有长者时连的边加上同方mogician的个数... 还要注意mogician可以无限续命,也 ...

  5. UML那些事

    什么是UML?它的全名:Unified Modeling Language,统一建模语言.最近我用到了uml,顺便重温了下这些知识.知乎上有一个讨论话题:uml还有用吗?这个讨论挺有意思的,看完后,受 ...

  6. SIMD---MMX代码优化

    单指令多数据流,即SIMD(Single Instruction, Multiple Data)指一类能够在单个指令周期内同时处理多个数据元素的指令集,利用的是数据级并行来提高运行效率,典型的代表由I ...

  7. 鹅厂优文 | 决策树及ID3算法学习

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:袁明凯|腾讯IEG测试开发工程师 决策树的基础概念 决策树是一种用树形结构来辅助行为研究.决策分析以及机器学习的方式,是机器学习中的 ...

  8. Windows 下安装 swoole 具体步骤

    Windows 下安装 swoole 具体步骤: Swoole,原本不支持在Windows下安装的,所以我们要安装Cygwin来使用.在安装Cygwin下遇到了很多坑,百度经验上的文档不是很全,所以我 ...

  9. PHP中文关键词匹配

    关键词匹配是比较常见的需求,如留言.弹幕及游戏聊天中的敏感词过滤,都需要对一段文字进行关键词匹配.提取到关键词后,再做进一步处理. 本类借助PHP高效的数组和mbstring扩展,来实现对中文关键词的 ...

  10. javascript中函数的闭包自调用

    话不多说, 直接上代码 // 定义一个变量outerParam, 然后使用一个闭包函数给该变量初始化var outerParam = (function testClosure(param) { // ...