文档章节

Android SD卡路径问题以及如何获取SDCard 内存

 的书法上的
发布于 2014/06/08 10:33
字数 748
阅读 408
收藏 7

 


Android 的SD卡路径是  /mnt/sdcard

 

在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题。较好的方法是通过Environment 来获取路径,最后给出一个例子,教你怎样获取SDCard 的内存,显示出来告诉用户。讲述的内容如下: 
0、获取sd卡路径。 
1、讲述 Environment 类。 
2、讲述 StatFs 类。 
3、完整例子读取 SDCard 内存

0、获取sd卡路径 
方法一: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); //写死绝对路径,不赞成使用

方法二: 
public String getSDPath(){ 
       File sdDir = null; 
       boolean sdCardExist = Environment.getExternalStorageState()   
                           .equals(Android.os.Environment.MEDIA_MOUNTED);   //判断sd卡是否存在 
       if   (sdCardExist)   
       {                               
         sdDir = Environment.getExternalStorageDirectory();//获取跟目录 
      }   
       return sdDir.toString(); 
       
}

然后:在后面加上斜杠,在加上文件名 
String fileName = getSDPath() +"/" + name;//以name存在目录中


1、讲述 Environment 类 
Environment 是一个提供访问环境变量的类。 
Environment 包含常量: 
MEDIA_BAD_REMOVAL 
解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除 
MEDIA_CHECKING 
解释:返回getExternalStorageState() ,表明对象正在磁盘检查。 
MEDIA_MOUNTED 
解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限 
MEDIA_MOUNTED_READ_ONLY 
解释:返回getExternalStorageState() ,表明对象权限为只读 
MEDIA_NOFS 
解释:返回getExternalStorageState() ,表明对象为空白或正在使用不受支持的文件系统。 
MEDIA_REMOVED 
解释:返回getExternalStorageState() ,如果不存在 SDCard 返回 
MEDIA_SHARED 
解释:返回getExternalStorageState() ,如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回 
MEDIA_UNMOUNTABLE 
解释:返回getExternalStorageState() ,返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装
MEDIA_UNMOUNTED 
解释:返回getExternalStorageState() ,返回 SDCard 已卸掉如果 SDCard   是存在但是没有被安装 
Environment 常用方法: 
方法:getDataDirectory() 
解释:返回 File ,获取 Android 数据目录。 
方法:getDownloadCacheDirectory() 
解释:返回 File ,获取 Android 下载/缓存内容目录。 
方法:getExternalStorageDirectory() 
解释:返回 File ,获取外部存储目录即 SDCard 
方法:getExternalStoragePublicDirectory(String type) 
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件 
方法:getExternalStorageState() 
解释:返回 File ,获取外部存储设备的当前状态 
方法:getRootDirectory() 
解释:返回 File ,获取 Android 的根目录 
2、讲述 StatFs 类 
StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况 
StatFs 常用方法: 
getAvailableBlocks() 
解释:返回 Int ,获取当前可用的存储空间 
getBlockCount() 
解释:返回 Int ,获取该区域可用的文件系统数 
getBlockSize() 
解释:返回 Int ,大小,以字节为单位,一个文件系统 
getFreeBlocks() 
解释:返回 Int ,该块区域剩余的空间 
restat(String path) 
解释:执行一个由该对象所引用的文件系统

© 著作权归作者所有

共有 人打赏支持
粉丝 5
博文 72
码字总数 58940
作品 0
东城
私信 提问
Android SD卡路径问题以及如何获取SDCard 内存

在研究拍照后突破的存储路径的问题,开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好...

Clownflsh
2012/03/13
0
0
获取Android手机中SD卡存储信息 获取剩余空间

SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那...

鉴客
2011/12/05
18K
0
Android 获取SDCard 内存

开始存储路径写死为: private String folder = "/sdcard/DCIM/Camera/"(SD卡上拍照程序的图片存储路径); 后来发现这样写虽然一般不会出错,但不是很好,因为不同相机,可能路径会出问题。...

_jacky
2012/11/29
0
0
如何区分手机内置存储卡与外置存储卡

android系统自从升级到2.3以后,多一个功能,可以判断存储卡是否是可以卸载的。Environment.isExternalStorageRemovable(),通过此方法我们可以知道手机上的存储卡是手机自带的还是外边可插拔...

wanyang
2014/01/07
0
0
[疑问] 各类Android手机的根目录如何获取

问题:各类Android手机,如何获取手机存储的根目录,以及sd卡根目录(Android2.3 到4.4)。 或者列出你获取根目录的方式以及机型。 获取方式一:android.os.Environment.getExternalStorage...

M_MissZen
2014/08/08
3.8K
1

没有更多内容

加载失败,请刷新页面

加载更多

linux脚本中父shell与子shell 执行的几种方式

本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell 1. source filename or . filename 不创建sub...

问题终结者
17分钟前
1
0
安装jdk和Tomcat

12月12日任务 16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat Tomcat介绍 Tomcat是apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由apache、Sun和其他一些...

robertt15
18分钟前
3
0
Beetl 免费视频

来自 https://my.oschina.net/gking?q=Beetl ,Beetl终于有人录制视频了 项目git地址:https://gitee.com/gavink/beetl-blog 视频地址:下载下来会更清晰,视频比较长,可使用倍速看 百度网盘...

闲大赋
30分钟前
0
0
isEmpty和null的区别

isEmpty和null的区别: 1.一个是对象为空(IsNull),一个是值为空(IsEmpty) 2.IsNull指任务类型变量是否为空包括对象类型的变量。 IsNull函数: 功能:返回Boolean的值,指明表达是否不包...

DemonsI
57分钟前
3
0
Centos7 安装mysql与php

https://blog.csdn.net/qq_36431213/article/details/79576025 官网下载安装mysql-server 依次使用下面三个命令安装 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.r......

Yao--靠自己
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部