android 获取文件、存储卡路径,和路径的填写的多种方式及4.1版本前后注意点

2023-12-24 07:18

本文主要是介绍android 获取文件、存储卡路径,和路径的填写的多种方式及4.1版本前后注意点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

利用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 获取文件、存储卡路径,和路径的填写的多种方式及4.1版本前后注意点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/530977

相关文章

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进