- 浏览: 301744 次
- 性别:
- 来自: 山西太原
文章分类
最新评论
-
A741841403:
core-renderer-CN.jar这个包是怎么引入的啊, ...
flying saucer 中文不显示、以及中文换行的问题解决 -
A741841403:
您好,能提供下,中文字体换行包的jar文件吗
flying saucer 中文不显示、以及中文换行的问题解决 -
nightw13h:
楼主 我也遇到了这个问题 照你的套路也把问题解决了 当时没 ...
maven 单元测试 Absent Code attribute in method that is not native or abstract in cl -
devilyard:
借地请教个问题:fatal: open /dev/null o ...
msysGit 安装后的配置 -
tiancai2:
如果在action中定义不是string类型的,而是一个Per ...
Struts2 、jquery之ajaxfileupload异步上传插件
android.os.Environment
提供访问环境变量
java.lang.Object | ||
android.os.Environment |
Environment 静态方法:
方法 : getDataDirectory ()
返回 : File
解释 : 返回Data的目录
方法 : getDownloadCacheDirectory ()
返回 : File
解释 : 返回下载缓冲区目录
方法 : getExternalStorageDirectory ()
返回 : File
解释 : 返回扩展存储区目录(SDCard)
方法 : getExternalStoragePublicDirectory (String type)
返回 : File
解释 : 返回一个高端的公用的外部存储器目录来摆放某些类型的文件(来自网上)
方法 : getRootDirectory ()
返回 : File
解释 : 返回Android的根目录
方法 : getExternalStorageState ()
返回 : String
解释 : 返回外部存储设备的当前状态
getExternalStorageState () 返回的状态String 类型常量 :
常量 : MEDIA_BAD_REMOVAL
值 : "bad_removal"
解释 : 在没有正确卸载SDCard之前移除了
常量 : MEDIA_CHECKING
值 : "checking"
解释 : 正在磁盘检查
常量 : MEDIA_MOUNTED
值 : "mounted"
解释 : 已经挂载并且拥有可读可写权限
值 : "mounted_ro"
解释 : 已经挂载,但只拥有可读权限
常量 : MEDIA_NOFS
值 : "nofs"
解释 : 对象空白,或者文件系统不支持
常量 : MEDIA_REMOVED
值 : "removed"
解释 : 已经移除扩展设备
常量 : MEDIA_SHARED
值 : "shared"
解释 : 如果SDCard未挂载,并通过USB大容量存储共享
常量 : MEDIA_UNMOUNTABLE
值 : "unmountable"
解释 : 不可以挂载任何扩展设备
常量 : MEDIA_UNMOUNTED
值 : "unmounted"
解释 : 已经卸载
使用时只需先判断SDCard当前的状态然后取得SdCard的目录即可(见源代码)
- //SDcard 操作
- ublic void SDCardTest() {
- // 获取扩展SD卡设备状态
- String sDStateString = android.os.Environment.getExternalStorageState();
- // 拥有可读可写权限
- if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) {
- try {
- // 获取扩展存储设备的文件目录
- File SDFile = android.os.Environment
- .getExternalStorageDirectory();
- // 打开文件
- File myFile = new File(SDFile.getAbsolutePath()
- + File.separator + "MyFile.txt");
- // 判断是否存在,不存在则创建
- if (!myFile.exists()) {
- myFile.createNewFile();
- }
- // 写数据
- String szOutText = "Hello, World!";
- FileOutputStream outputStream = new FileOutputStream(myFile);
- outputStream.write(szOutText.getBytes());
- outputStream.close();
- } catch (Exception e) {
- // TODO: handle exception
- }// end of try
- }// end of if(MEDIA_MOUNTED)
- // 拥有只读权限
- else if (sDStateString
- .endsWith(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) {
- // 获取扩展存储设备的文件目录
- File SDFile = android.os.Environment.getExternalStorageDirectory();
- // 创建一个文件
- File myFile = new File(SDFile.getAbsolutePath() + File.separator
- + "MyFile.txt");
- // 判断文件是否存在
- if (myFile.exists()) {
- try {
- // 读数据
- FileInputStream inputStream = new FileInputStream(myFile);
- byte[] buffer = new byte[1024];
- inputStream.read(buffer);
- inputStream.close();
- } catch (Exception e) {
- // TODO: handle exception
- }// end of try
- }// end of if(myFile)
- }// end of if(MEDIA_MOUNTED_READ_ONLY)
- // end of func
//SDcard 操作 public void SDCardTest() { // 获取扩展SD卡设备状态 String sDStateString = android.os.Environment.getExternalStorageState(); // 拥有可读可写权限 if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) { try { // 获取扩展存储设备的文件目录 File SDFile = android.os.Environment .getExternalStorageDirectory(); // 打开文件 File myFile = new File(SDFile.getAbsolutePath() + File.separator + "MyFile.txt"); // 判断是否存在,不存在则创建 if (!myFile.exists()) { myFile.createNewFile(); } // 写数据 String szOutText = "Hello, World!"; FileOutputStream outputStream = new FileOutputStream(myFile); outputStream.write(szOutText.getBytes()); outputStream.close(); } catch (Exception e) { // TODO: handle exception }// end of try }// end of if(MEDIA_MOUNTED) // 拥有只读权限 else if (sDStateString .endsWith(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) { // 获取扩展存储设备的文件目录 File SDFile = android.os.Environment.getExternalStorageDirectory(); // 创建一个文件 File myFile = new File(SDFile.getAbsolutePath() + File.separator + "MyFile.txt"); // 判断文件是否存在 if (myFile.exists()) { try { // 读数据 FileInputStream inputStream = new FileInputStream(myFile); byte[] buffer = new byte[1024]; inputStream.read(buffer); inputStream.close(); } catch (Exception e) { // TODO: handle exception }// end of try }// end of if(myFile) }// end of if(MEDIA_MOUNTED_READ_ONLY) }// end of func
计算SDCard的容量大小
android.os.StatFs
一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
java.lang.Object | |
android.os.StatFs |
构造方法:
公用方法:
方法 : getAvailableBlocks ()
返回 : int
解释 :返回文件系统上剩下的可供程序使用的块
方法 : getBlockCount ()
返回 : int
解释 : 返回文件系统上总共的块
方法 : getBlockSize ()
返回 : int
解释 : 返回文件系统 一个块的大小单位byte
方法 : getFreeBlocks ()
返回 : int
解释 : 返回文件系统上剩余的所有块 包括预留的一般程序无法访问的
返回 : void
解释 : 执行一个由该对象所引用的文件系统雷斯塔特.(Google翻译)
想计算SDCard大小和使用情况时, 只需要得到SD卡总共拥有的Block数或是剩余没用的Block数,再乘以每个Block的大小就是相应的容量大小了单位byte.(见代码)
- public void SDCardSizeTest() {
- // 取得SDCard当前的状态
- String sDcString = android.os.Environment.getExternalStorageState();
- if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
- // 取得sdcard文件路径
- File pathFile = android.os.Environment
- .getExternalStorageDirectory();
- android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());
- // 获取SDCard上BLOCK总数
- long nTotalBlocks = statfs.getBlockCount();
- // 获取SDCard上每个block的SIZE
- long nBlocSize = statfs.getBlockSize();
- // 获取可供程序使用的Block的数量
- long nAvailaBlock = statfs.getAvailableBlocks();
- // 获取剩下的所有Block的数量(包括预留的一般程序无法使用的块)
- long nFreeBlock = statfs.getFreeBlocks();
- // 计算SDCard 总容量大小MB
- long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024;
- // 计算 SDCard 剩余大小MB
- long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024;
- }// end of if
- // end of func
public void SDCardSizeTest() { // 取得SDCard当前的状态 String sDcString = android.os.Environment.getExternalStorageState(); if (sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) { // 取得sdcard文件路径 File pathFile = android.os.Environment .getExternalStorageDirectory(); android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath()); // 获取SDCard上BLOCK总数 long nTotalBlocks = statfs.getBlockCount(); // 获取SDCard上每个block的SIZE long nBlocSize = statfs.getBlockSize(); // 获取可供程序使用的Block的数量 long nAvailaBlock = statfs.getAvailableBlocks(); // 获取剩下的所有Block的数量(包括预留的一般程序无法使用的块) long nFreeBlock = statfs.getFreeBlocks(); // 计算SDCard 总容量大小MB long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024; // 计算 SDCard 剩余大小MB long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024; }// end of if }// end of func
主要:
在判断SDCard的状态为MEDIA_MOUNTED后,仅是说明硬件已经准备好可读可写
如果想叫你的程序也可写的话,还需要在工程的XML文件中加上操作扩展存储设备的权限
方法:
在 XML文件中 Permissions 标签中 点击Add 添加 Uses Permission 名字选择
android.permission.WRITE_EXTERNAL_STORAGE
或者直接在xml文件中添加下面一句即可.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
发表评论
-
intent 的URI功能示例总汇
2015-11-04 17:44 1208一、打开一个网页,类别是Intent.ACTION_VIEW ... -
android native调用
2014-07-11 13:56 6911、c++中的方法Java_xxx_xxx 中的Java 首 ... -
Android中显示照片的Exif信息
2013-11-14 11:36 1410从Android 2.0开始,新增了一个关于Exif信息的包 ... -
PhoneGap与android交互及 JQuery Mobile+ iscroll 列表滚动条的实现
2013-08-13 18:32 15511、PhoneGap与android交互2、JQuery M ... -
android下图片压缩
2013-05-16 19:16 799第一:我们先看下质量压缩方法: private B ... -
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
2013-05-15 16:10 1189问题: 针对Android2.3.3开发的手机程序连接We ... -
Android平台调用WebService详解
2013-05-14 15:30 1278上篇文章已经对Web Service及其相关知识 ... -
关于android中Toast重复显示的解决方案
2012-01-19 18:27 2864在使用Toast作为提示信息时,Toast会显示在屏幕下方, ... -
android Toast大全(五种情形)建立属于你自己的Toast
2012-01-19 18:24 1098Toast用于向用户显示一些帮助/提示。下面我做了 ... -
android捕获back返回键
2012-01-19 17:09 2359@Override public boolean onKe ... -
Activity生命周期之我见
2012-01-19 15:38 887关于Activity生命周期的文章很多,而且大部分也说得很详细 ... -
android之HttpURLConnection
2012-01-18 15:11 13371.HttpURLConnection 连接 URL 1 ... -
Android学习视频
2011-04-08 18:21 8491.http://www.verycd.com/topics/ ...
相关推荐
Android_SDCard操作(文件读写,容量计算)Android_SDCard操作(文件读写,容量计算)
Android_SDCard操作(文件读写,容量计算).
Android应用源码SdCard读写文件实例
Android应用源码SdCard读写文件实例.zip
具体介绍了android中sdcard的读写操作步骤和具体的实现过程,介绍了sdcard的应用等
android开发实例-sdcard文件读写 WIFI检测、下载文件等 开发环境:JAVA SDK1.7及android最新的开发包
Android应用源码SdCard读写文件实例源码.可供学习设计参考。
安卓Android源码——SdCard读写文件实例.zip
android应用开发中关于SDCard读写操作的实例代码,在下载学习SDCard操作中,碰到很棘手的问题了。不过最后还在我的坚持下成功了,
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 文件读写至SDCard download(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
android 写入SDcard 文件,通俗易懂,适合初学者
Android_SDCard操作(文件读写,容量计算)文件读写,容量计算
android 文件操作 输入流对象 输出流对象 SDCard读写
sdcard文件读写案例-ES文件浏览器 代码详细 很全
android SD卡读写东西Txt文件
Android模拟器sdcard操作 ,帮助我们更好学Android系统开发
NULL 博文链接:https://z251257144.iteye.com/blog/1355245