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

相关文章

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动