Android手机中常见的路径

Android 常见的存储文件路径的作用及获取方式(一) 内存储 1.1 内部存储 内部存储不是指的内存,而是指的是手机根目录的下data/data文件夹,除非

Android手机中常见的路径

Android 常见的存储文件路径的作用及获取方式(一)

内存储 1.1 内部存储 内部存储不是指的内存,而是指的是手机根目录的下data/data文件夹,除非root后的手机,否者用户没有权限去观看这个目录下的文件。 内部存储保存的文件会随着app地卸载而删除。 1.2 内部存储的几个主要的文件

cache app安装后,就会自动生成的文件,存放app的一些缓存文件database 存放app创建的数据库相关的文件files 存放普通的文件。share_prefs 存放SharedPreferences设置的key-value文件的相关的数据 外存储 2.1 外存储 外部存储有两种,一种是手机额外挂载的tf卡,一种是手机出厂的时候,已经嵌入到主板的那种存储卡。在手机上看到Storage/emulated 就是外存储。 2.2 外存储的组成

外存储的私有目录 路径:/storage/emulated/0/Android/data/包名/

外存储的共有目录 路径:/storage/emulated/0/xx/ 。其中xx是以下几种 :Alarms、DCIM、Download、Movies、Music、Notifications、Picture、Podcast、Ringtones.

3.路径的获取 其实路径可以分为两大类

带包名的路径 带包名的路径和某个app相关,这类路径的获取我们需要使用Context方法。

路径获取方法api版本/data/data/com.example.filepathdemo/filesthis.getFilesDir().getAbsolutePath()内部私有/data/data/com.example.filepathdemo/cachethis.getCacheDir().getAbsolutePath()内部私有/storage/sdcard/Android/data/com.example.filepathdemo/cachethis.getExternalCacheDir().getAbsolutePath()外部私有/storage/sdcard/Android/data/com.example.filepathdemo/files/Picturesthis.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath()外部私有

files下包含多种类型的文件,Environment.DIRECTORY_PICTURES只是其中之一,还有如Environment.DIRECTORY_MUSIC,Environment.DIRECTORY_DOWNLOADS等

不带包名的路径

由Environment类进行获取相关的数据。

路径获取方法api版本/storage/sdcard/PicturesEnvironment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()外部公有

共有目录下,系统会自动生成多种类型的文件夹。它们是:

AlarmsDCIMDownloadMoviesMusicNotificationsPicturesPodcastsRingtones

建议:尽量不要将大量的数据写入内部存储中。应用私有的数据尽量的写进私有目录中,一则他们可以随着app的卸载而删除,二来更安全一些。对于一些多媒体文件,如果不要求随着app的卸载而删除,建议将这些多媒体文件,按照类型存储到外部存储的相应的公共目录下。

4.其他

mnt/sdcard和sdcard的区别?

sdcard其实就是一个mnt/sdcard的的一个快捷方式,就类似与window的桌面的快捷方法,它指向mnt/sdcard目录,所以两者的内容是相同的。

5.创建文件

在内存储的私有目录中创建文件,路径如下data/data/包名/files/zwk/Mytxt.txt.

File innerFile = new File(this.getFilesDir(), "zwk"); // 在内存储中新new一个'zwk'的文件夹对象

if (!innerFile.exists()) { // 判断文件夹是否存在

innerFile.mkdirs(); // 创建文件夹

}

File textFile = new File(this.getFilesDir() + File.separator + "zwk", "MyTxt.txt"); //在zwk文件夹下创建txt文件对象

if (!textFile.exists()) { // 判断MyTxt文件是否存在

try {

textFile.createNewFile(); // 不存在就创建一个新的

} catch (IOException e) {

e.printStackTrace();

}

}

FileOutputStream fileOutputStream = null;

try {

fileOutputStream=new FileOutputStream(textFile); // 获取MyTxt.txt文件输出流

fileOutputStream.write("测试数据".getBytes()); // 向MyTxt.txt内部写入数据

fileOutputStream.flush();

fileOutputStream.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally {

if (fileOutputStream!=null){

try {

fileOutputStream.flush();

fileOutputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

相关推荐