读取sd卡上的文件

更新时间:2023-06-11 20:51:09 阅读: 评论:0

android 读取SD卡文件
2011-07-05 14:59:50| 分类: androidgrade怎么读 | 标签: |字号大中小 订阅
SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android开发中,我们如何能获取SD卡的内存容量呢?
首先,要获取SD卡上面的信息,必须先对SD卡有访问的权限,因此第一件事就是需要添加访问扩展设备的权限。
<us-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</us-permission>
其次,需要判断手机上面SD卡是否插好,如果有SD卡的情况下,我们才可以访问得到并获取到它的相关信息,当然以下这个语句需要用if做判断。
ExternalStorageState().equals(Environment.MEDIA_MOUNTED)
取得sdcard文件路径
File path = ExternalStorageDirectory();
StatFs statfs = new Path());
获取block的SIZE
long blocSize = BlockSize();
获取BLOCK数量
long totalBlocks = BlockCount();
空闲的Block的数量
long availaBlock = AvailableBlocks();
计算总空间大小和空闲的空间大小
储空间大小跟空闲的存储空间大小就被计算出来了。
/**
* 取得空闲sd卡空间大小
* @return
*/
public long getAvailaleSize(){
File path = ExternalStorageDirectory(); //取得sdcard文件路径
StatFs stat = new Path());
/*获取block的SIZE*/
long blockSize = BlockSize();
/*空闲的Block的数量*/
long availableBlocks = AvailableBlocks();
soleil/* 返回bit大小值*/
return availableBlocks * blockSize;
//(availableBlocks * blockSize)/1024 KIB 单位
//(availableBlocks * blockSize)/1024 /1024 MIB单位
}
/**
* SD卡大小
* @return
*/
uk postcodepublic long getAllSize(){
File path = ExternalStorageDirectory();
StatFs stat = new Path());
/*获取block的SIZE*/
long blockSize = BlockSize();
/*块数量*/
long availableBlocks = BlockCount();
/* 返回bit大小值*/
return availableBlocks * blockSize;
}
Android 文件的浏览(类似于FileDialog的功能)
首先说一下这个文件浏览的简单实现原理:
首先选择一个目录做为根目录,然后打开此目录,常用的就是使用File这个类了,如下:
File file=new File(path);
然后可以通过获取到此目录下所有文件及文件夹的列表:
如下:
File[] files = file.listFiles();
然后再根据根据得到的文件,来判断是文件夹还是文件,如果是文件夹,那么我们就将文件夹添加到列表中,如果是文件那么就把文件添加到列表中进行显示,如果需要显示图标的话,那么就需要根据文件的后缀,设置不同的图标了。我是在ListView中进行显示的。
基本代码如下:
for (File currentFile : files)
{
//判断是一个文件夹还是一个文件
if (currentFile.isDirectory())
{胡桃油
currentIcon = getResources().getDrawable(R.drawable.folder);
}
el
{
//取得文件名
String fileName = Name();
//根据文件名来判断文件类型,设置不同的图标
if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingImage)))
{上海艺术培训
currentIcon = getResources().getDrawable(R.drawable.image);
}
el if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingWebText)))
{
currentIcon = getResources().getDrawable(R.drawable.webtext);
}
el if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingPackage)))
couture{
currentIcon = getResources().getDrawable(R.drawable.packed);
}
el if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingAudio)))
boldface{
currentIcon = getResources().getDrawable(R.drawable.audio);
}
el if (checkEndsWithInStringArray(fileName, getResources().getStringArray(R.array.fileEndingVideo)))
{
currentIcon = getResources().getDrawable(R.drawable.video);
}
中石油职称英语el
{
currentIcon = getResources().getDrawable();
rook}
}
下面是根据后缀对文件的类型进行的判断:
//通过文件名判断是什么类型的文件
private boolean checkEndsWithInStringArray(String checkItsEnd,
String[] fileEndings)
{
for(String aEnd : fileEndings)
{
if(dsWith(aEnd))
return true;
}
return convenientlyfal;
}
再贴一段自己的代码,获取SD卡文件名
private void initData() {
  // 判断是否有外存储设备
  if (ExternalStorageState().equals(
    Environment.MEDIA_MOUNTED)) {
  File path = ExternalStorageDirectory();
  File file = new Path());
  File[] files = file.listFiles();
  getFileName(files);
  }
}
private void getFileName(File[] files) {
  for (File currentFile : files) {
  // 判断是一个文件夹还是一个文件
  if (currentFile.isDirectory()) {
    getFileName(currentFile.listFiles());
  } el {
    // 取得文件名
    String fileName = Name();
    // 获取.info后缀的文件
    if (dsWith(".info"))
    // 保存去掉后缀的文件名
    names.add(fileName.substring(0, fileName.lastIndexOf(".")));
  }
  }
}

本文发布于:2023-06-11 20:51:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/141722.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:法语菜单
标签:文件   判断   获取   需要   手机   空间   空闲
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图