android 获取文件、存储卡路径,和路径的填写的多种方式及4.1版本前后注意点
2016-04-28 12:22
603 查看
利用Uri对文件操作请移步。。。
如何获取文件路径请移步。。。
本文做的仅仅是介绍的是在android中路径的填写格式,以及他们所到达的地点,至于怎样去读写操作请移步。。。。。
我们获取sd卡的路径是用的是File类,File有文件和文件夹的意思,而sd卡是存储卡,他们又有什么关系呢?
楼主的理解是一大块物理内存是一块死物,必须在其上面覆盖一层文件系统才可以共我们去操作,文件系统将物理磁盘进行(划分)分区,
既然是文件系统,那么划分的分区就是文件或文件夹啦,所以每一个分区就是一个有内存大小的大文件夹。他们都有一个根目录(“/”),所
有的分区都在这个根目录下,由这个根目录向下延伸,既然每一个分区是一个大文件夹,那么就有路径名字等等参数,那么当然可以用File来
获取路径、名子等等啦。
这儿我们得先区分一下android4.1以前的版本和以后的版本外部存储在根目录下的挂载点,请移步。。
我们要在代码中填写路径要怎么填写呢。以下是几种方式(这里我们以android4.2为例,不同的版本可能会有所不同,但殊途同归)。
Environment.getExternalStorageDirectory();相信这句代码大家都不陌生,他是获取外部存储路径的,
但有时或返回的为 “mounted”,即安装好的、可用的,但有时候确是“remove”,移除的、不可用的。
原因是什么呢,是因为手机厂商的不同,所以外置sd卡和内置sd卡挂载的路径问题。
有的手机用这个方法获取到的是内置sd卡的挂载路径,即将内置sd卡挂载在Environment.getExternalStorageDirectory()这个节点上,所以无论怎样都返回“mounted”,
而有的手机用这个方法获取的是外置sd卡的挂载路径,即将外置sd卡挂载在Environment.getExternalStorageDirectory()这个节点上,所以如果你没装外置sd卡就会放回“remove”,而且不同版本,不同厂商挂载点的路径会有差别,具体请移步,这儿确实有吐槽点,那这个问题怎么解决呢,就算用这个方法获取了一个sd卡的路径,那另一个怎么获取呢。
至于怎么获取,借花献佛 http://blog.fidroid.com/post/android/ru-he-zheng-que-huo-de-androidnei-wai-sdqia-lu-jing。
路径的填写格式:有下面2种版本1.直接调挂载路径即Environment.getExternalStorageDirectory();这样得到sd卡路径,然后向下延伸。
2.“/sdcard”(sd卡路径),然后向下延伸,其实调的是软连接(快捷方式),然后沿着此快捷方式向下延伸。
总结起来的话就是两种,通过获取sd卡在android系统上的挂载点来获取sd卡的路径,第二种就是掉挂载点的软链接啦,都可调用成功。另外还可能有其他乱七八糟
的填写方式,但殊途同归,这里就先不写啦,遇到再说。
如何获取文件路径请移步。。。
本文做的仅仅是介绍的是在android中路径的填写格式,以及他们所到达的地点,至于怎样去读写操作请移步。。。。。
我们获取sd卡的路径是用的是File类,File有文件和文件夹的意思,而sd卡是存储卡,他们又有什么关系呢?
楼主的理解是一大块物理内存是一块死物,必须在其上面覆盖一层文件系统才可以共我们去操作,文件系统将物理磁盘进行(划分)分区,
既然是文件系统,那么划分的分区就是文件或文件夹啦,所以每一个分区就是一个有内存大小的大文件夹。他们都有一个根目录(“/”),所
有的分区都在这个根目录下,由这个根目录向下延伸,既然每一个分区是一个大文件夹,那么就有路径名字等等参数,那么当然可以用File来
获取路径、名子等等啦。
这儿我们得先区分一下android4.1以前的版本和以后的版本外部存储在根目录下的挂载点,请移步。。
我们要在代码中填写路径要怎么填写呢。以下是几种方式(这里我们以android4.2为例,不同的版本可能会有所不同,但殊途同归)。
Environment.getExternalStorageDirectory();相信这句代码大家都不陌生,他是获取外部存储路径的,
但有时或返回的为 “mounted”,即安装好的、可用的,但有时候确是“remove”,移除的、不可用的。
原因是什么呢,是因为手机厂商的不同,所以外置sd卡和内置sd卡挂载的路径问题。
有的手机用这个方法获取到的是内置sd卡的挂载路径,即将内置sd卡挂载在Environment.getExternalStorageDirectory()这个节点上,所以无论怎样都返回“mounted”,
而有的手机用这个方法获取的是外置sd卡的挂载路径,即将外置sd卡挂载在Environment.getExternalStorageDirectory()这个节点上,所以如果你没装外置sd卡就会放回“remove”,而且不同版本,不同厂商挂载点的路径会有差别,具体请移步,这儿确实有吐槽点,那这个问题怎么解决呢,就算用这个方法获取了一个sd卡的路径,那另一个怎么获取呢。
至于怎么获取,借花献佛 http://blog.fidroid.com/post/android/ru-he-zheng-que-huo-de-androidnei-wai-sdqia-lu-jing。
路径的填写格式:有下面2种版本1.直接调挂载路径即Environment.getExternalStorageDirectory();这样得到sd卡路径,然后向下延伸。
2.“/sdcard”(sd卡路径),然后向下延伸,其实调的是软连接(快捷方式),然后沿着此快捷方式向下延伸。
总结起来的话就是两种,通过获取sd卡在android系统上的挂载点来获取sd卡的路径,第二种就是掉挂载点的软链接啦,都可调用成功。另外还可能有其他乱七八糟
的填写方式,但殊途同归,这里就先不写啦,遇到再说。
相关文章推荐
- Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- Android:EditText插入图片实现图文混排
- android 自学日记(五) ——ListView
- android ListView点击item删除事件的实现
- Android studio中正确引入so文件的方法
- Android Studio如何发布APK
- android activity跳转传类出错
- Android 各屏幕密度下推荐图标尺寸
- Android开发尽最大能力省图片内存占用方案
- Android之Context理解
- Android TextUtils类介绍
- Android drawable中的一些细节
- vlc-android(1.9.1) 移到android studio
- Caused by: android.content.res.Resources$NotFoundException: File res/drawable/main_tab_conversation_
- Android蓝牙4.0的使用
- JS怎样调用Android本地原生方法
- Android 通过solid来定义不同边框的颜色,可以只定义一个边框的颜色
- Android Studio 连接不上真机
- Android Studio一些常用快捷键及快捷键冲突解决
- android声明的权限