Android 保存文件路径方法

Android保存文件到本地路径问题

常见路径

例如: application

包名: com.my.company

项目名: chat

/data/data == ///data/user/0

getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,
一般放一些长时间保存的数据
getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,
一般存放临时缓存数据
如果使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/
这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项

getCacheDir()方法用于获取/data/data/<application package>/cache目录
getFilesDir()方法用于获取/data/data/<application package>/files目录

保存一张图片hearder.png到Files

 String path = mContext.getFilesDir().getAbsolutePath();
 path = path + File.separator + directoryName + File.separator + fileName;
 directoryName:chat
 fileName : hearder.png

得到的path即为: ///data/user/0/com.my.company/files/chat/hearder.png

保存图片到dir

 String path = mContext.getDir(directoryName, Context.MODE_PRIVATE).getAbsolutePath();
 path = path + File.separator + fileName;
 directoryName:chat Note: directory can not has "/"
 fileName : hearder.png

得到的path即为: ///data/user/0/com.my.company/app_chat/hearder.png

获取路径代码

public String getDiskCacheDir(Context context) {
 String cachePath = null;
 if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
   || !Environment.isExternalStorageRemovable()) {
  cachePath = context.getExternalCacheDir().getPath();
 } else {
  cachePath = context.getCacheDir().getPath();
 }
 return cachePath;
} 

可以看到,当SD卡存在或者SD卡不可被移除的时候,就调用getExternalCacheDir()方法来获取缓存路径,否则就调用getCacheDir()方法来获取缓存路径。前者获取到的就是 /sdcard/Android/data/com.your.company/cache 这个路径,而后者获取到的是 /data/data/com.your.company/cache 这个路径。

路径分类

android程序扫描储存时,如果使用API:Environment.getExternalStorageDirectory().getPath()获得的是默认路径,可以先判断下Environment.getExternalStorageDirectory().getParentFile(),如果返回null则没有父路径,取Environment.getExternalStorageDirectory().getPath()为当前父路径。

Environment.getDataDirectory() = /data
Environment.getDownloadCacheDirectory() = /cache
Environment.getExternalStorageDirectory() = /mnt/sdcard
Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test
Environment.getRootDirectory() = /system
getPackageCodePath() = /data/app/com.my.app-1.apk
getPackageResourcePath() = /data/app/com.my.app-1.apk
getCacheDir() = /data/data/com.my.app/cache
getDatabasePath(“test”) = /data/data/com.my.app/databases/test
getDir(“test”, Context.MODE_PRIVATE)= /data/data/com.my.app/app_test
getExternalCacheDir() = /mnt/sdcard/Android/data/com.my.app/cache
getExternalFilesDir(“test”)= /mnt/sdcard/Android/data/com.my.app/files/test
getExternalFilesDir(null) = /mnt/sdcard/Android/data/com.my.app/files
getFilesDir() = /data/data/com.my.app/files

以上这篇Android 保存文件路径方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈android获取存储目录(路径)的几种方式和注意事项

    通常, 我们创建文件/目录, 或者存储图片什么的, 我们都需要拿到手机的存储路径, 现在我们就来看一下获取手机存储路径的几种方式(作为工具类方法调用即可): 第一种: 获取 /storage/emulated/0 public static boolean sdCardIsAvailable() { //首先判断外部存储是否可用 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { File

  • android数据存储之文件存储方法

    文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的. 概述 文件存取的核心就是输入流和输出流. Android文件的操作模式 文件的相关操作方法 文件读写的实现 openFileOutput和openFileInput方法 /** * openFIleOutput ,openFileInput * 这两种方法同sp一样只能讲文件保存到手机内存固定的路径中, * 默认为 /data/data/<packageName

  • 详解Android文件存储

    摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念. 相

  • Android 存储路径选择方法

    Android能用来存储的地方有两个,一个是手机内置的存储空间,一个是外置的SD卡,内置的存储空间一般比较小,所以应用的缓存建议存储在外置的SD卡中. 在Android系统中如何获得存储的路径呢? public static void getRootPath(Context context) { Log.d("ExternalDirectory->", Environment.getExternalStorageDirectory().getPath()); Log.d(&quo

  • Android实现文件的保存与读取功能示例

    本文实例讲述了Android实现文件的保存与读取功能.分享给大家供大家参考,具体如下: 注: 在Activity中有 getFileDir() 和 getCacheDir(); 方法可以获得当前的手机自带的存储空间中的当前包文件的路径 getFileDir() ----- /data/data/cn.xxx.xxx(当前包)/files getCacheDir() ----- /data/data/cn.xxx.xxx(当前包)/cache 1. 编写文件读取与写入功能实现类 FileServi

  • Android 保存文件路径方法

    Android保存文件到本地路径问题 常见路径 例如: application 包名: com.my.company 项目名: chat /data/data == ///data/user/0 getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录, 一般放一些长时间保存的数据 getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录, 一般存放

  • php实现编辑和保存文件的方法

    本文实例讲述了php实现编辑和保存文件的方法.分享给大家供大家参考.具体如下: save_file.php: <?php session_start(); $handle = fopen($_POST['original_file_name'], "w"); $text = $_POST['file_contents']; if(fwrite($handle, $text) == FALSE){ $_SESSION['error'] = '<span class="

  • Android自定义文件路径选择器

    文中涉及到文件名称排序,固定根目录以及返回上一层在上面,方便选择等.根据文件后缀,筛选文件还没做.先看效果. 1.效果图 2.核心代码如下 是通过继承BaseAdapter 完成的,里面有自定义layout界面.进行管理返回跟目录以及上一层,方便管理. package com.filebrowser; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFact

  • Android字符串资源文件format方法使用实例

    很多时候我们感性Google在设计Android时遵守了大量MVC架构方式,可以让写公共代码.美工和具体逻辑开发人员独立出来.有关Android 的资源文件values/strings.xml中如何实现格式化字符串呢? 这里Android123举个简单的例子,以及最终可能会用到哪些地方. 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <resources> <string name=

  • Android读取资源文件的方法

    Android读取资源文件的方法 1.放入到资源文件夹里面,也就是所创建android工程的res下面. 我们可以在里面建立文件夹,放置我们要读取的文件. 例如:res里面建立目录raw,将要读取的文件abc.bin放入到该文件夹下,此时通过 openRawResource()方法即可读取.代码为 InputStream is = getResources().openRawResource(R.raw.abc); 只要获取InputStream,一切就好办了! 注意:res下面的目录名字是有讲

  • 创建Android库的方法及Android .aar文件用法小结

    创建 Android 库 Android 库在结构上与 Android 应用模块相同.它可以提供构建应用所需的一切内容,包括源代码.资源文件和 Android 清单.不过,Android 库将编译到您可以用作 Android 应用模块依赖项的 Android 归档 (AAR:Android Archive Resource) 文件,而不是在设备上运行的 APK.与 JAR 文件不同,AAR 文件可以包含 Android 资源和一个清单文件,这样,除了 Java 类与方法外,您还可以捆绑布局和可绘

  • C#中Winform获取文件路径的方法实例小结

    本文实例讲述了C#中Winform获取文件路径的方法.分享给大家供大家参考.具体如下: 获取文件名方法: 用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法 获取文件路径方法: //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe //(.exe

  • 基于linux命令提取文件夹内特定文件路径

    最近需要实现自动化搜寻特定文件夹下的特定文件,并且需要分别保存文件路径与文件名.算然使用python的walk能够实现,但是感觉复杂了些.于是想看看linux自带的命令是否能完成这项工作. 环境 需要查找的目录结构如下 . |____test | |____test2.txt | |____test.py | |____test.txt | |____regex.py |____MongoDB | |____.gitignore | |____cnt_fail.py | |____db 目标一:

  • Android将String保存为SD卡中TXT文件的方法

    如下所示: public static void stringTxt(String str){ try { FileWriter fw = new FileWriter("/sdcard/aaa" + "/cmd.txt");//SD卡中的路径 fw.flush(); fw.write(str); fw.close(); } catch (Exception e) { e.printStackTrace(); } } 以上这篇Android将String保存为SD卡

  • android图片文件的路径地址与Uri的相互转换方法

    一个android文件的Uri地址一般如下: content://media/external/images/media/62026 这是一张图片的Uri,那么我们如何根据这个Uri获得其在文件系统中的路径呢? 其实很简单,直接上代码: public static String getRealFilePath( final Context context, final Uri uri ) { if ( null == uri ) return null; final String scheme

随机推荐