文件有很多种类型,有音乐文件、视频文件、图片文件、文本文件等,不同类型的文件在android中的打开方式是不一样的,也就是需要不同的软件区打开,那么,我们通过String fileName = file.getName;如何判断我们所要打开的文件时什么类型的文件进而采取不同的措施呢?

不同的文件后缀名并不是唯一的,比如mp3、wmv文件都是音频文件,mp4、avi、rmvb文件都是视频文件,其实要判断文件是什么类型的文件一个函数就可以了,fileName.endsWith(xxx);将后缀名传进去就可以判断了,这样的话,我们可以在代码中写多个String[ ],然后遍历,一个个匹配,当然了,我们可以将这些文件格式放在资源文件中,这样代码就显得简洁多了。

★资源文件的位置

★xml文件的代码

<?xml version="1.0" encoding="utf-8"?>
<resources><!-- 图片的后缀名字 --><array name="fileEndingImage"><item>.png</item><item>.gif</item><item>.jpg</item><item>.jpeg</item><item>.bmp</item></array><!-- 音乐的后缀名字 --><array name="fileEndingAudio"><item>.mp3</item><item>.wav</item><item>.ogg</item><item>.midi</item><item>.wma</item></array><!-- 压缩包的后缀名字 --><array name="fileEndingPackage"><item>.jar</item><item>.zip</item><item>.rar</item><item>.gz</item></array><!-- 网页文件的后缀名字 --><array name="fileEndingWebText"><item>.htm</item><item>.html</item><item>.php</item></array><!-- 视频文件的后缀名字 --><array name="fileEndingVideo"><item>.mp4</item><item>.rmvb</item><item>.rm</item><item>.mpg</item><item>.avi</item><item>.mpeg</item></array>
</resources>

★下面是匹配代码

◇判断类型方法

/*** 通过文件名判断是什么类型的文件* fileEndings是某一类型的文件后缀名集合*/public boolean checkFileType(String fileName, String[] extendNames){//遍历后缀名称集合for(String end: extendNames){//判断后缀名称是否存在数组中if(fileName.endsWith(end))return true;}//如果后缀名称不存在数组中,返回falsereturn false;}

◇调用代码

//取得文件名String fileName = file.getName();//判断是一个文件夹还是一个文件if(file.isDirectory()){//如果是一个文件夹,则设置图片为文件夹图片currentIcon = getResources().getDrawable(R.drawable.folder);}else {//判断文件是否为图片文件if(checkFileType(fileName, getResources().getStringArray(R.array.fileEndingImage))){//设置音乐的图标currentIcon = getResources().getDrawable(R.drawable.image);}//判断文件是否为网页文件else if(checkFileType(fileName, getResources().getStringArray(R.array.fileEndingWebText))){//设置音乐的图标currentIcon = getResources().getDrawable(R.drawable.webtext);}//判断文件是否为压缩包文件else if(checkFileType(fileName, getResources().getStringArray(R.array.fileEndingPackage))){//设置音乐的图标currentIcon = getResources().getDrawable(R.drawable.packed);}//判断文件是否为音乐文件else if(checkFileType(fileName, getResources().getStringArray(R.array.fileEndingAudio))){//设置音乐的图标currentIcon = getResources().getDrawable(R.drawable.audio);}//判断文件是否为视频文件else if(checkFileType(fileName, getResources().getStringArray(R.array.fileEndingVideo))){//设置音乐的图标currentIcon = getResources().getDrawable(R.drawable.video);}//如果为其它文件else {//默认图标currentIcon = getResources().getDrawable(R.drawable.text);}}

文件管理之文件后缀名识别相关推荐

  1. 你误解了Windows的文件后缀名吗?

    一.背景说明 有很多的小伙伴对windows下的文件后缀名不能很好地理解作用和区别,更不用说高深的使用了,在这里给大家说一下这些文件后缀名到底有什么区别,有什么作用呢? 二.说明 简单的说来,wind ...

  2. 文件后缀名大全及其说明表

    文件后缀名大全及其说明表 转自:http://wf66.com/bbs/200410/35382.htm A 对象代码库文件 AAM Authorware shocked文件 AAS Authorwa ...

  3. 服务器页面文件后缀,使用HTML语言开发的WWW页面文件后缀名是什么

    使用HTML语言开发的WWW页面文件后缀名是什么 发布时间:2020-11-11 14:40:04 来源:亿速云 阅读:109 作者:小新 这篇文章主要介绍了使用HTML语言开发的WWW页面文件后缀名 ...

  4. 后缀为php但是bin文件夹,镜像文件后缀名是什么

    镜像文件后缀名有:".iso".".bin".".nrg".".vcd".".cif"." ...

  5. 手机php文件怎么改后辍,php修改文件后缀名的方法

    php修改文件后缀名的方法 发布时间:2020-09-04 10:10:15 来源:亿速云 阅读:82 作者:小新 这篇文章主要介绍了php修改文件后缀名的方法,具有一定借鉴价值,需要的朋友可以参考下 ...

  6. 通过php获取文件后缀名怎么改,【转】PHP获取文件后缀名的几种方法

    在言会咸的博客转来的文章,还有三种,我以前用过第二种. //PHP获取文件后缀名的几种方法1: function get_file_type($filename){ $type = substr($f ...

  7. linux sed给空文件首行插入_linux下批量修改文件后缀名以及合并多行

    写在前面 感谢乔兄送测的公司,让我终于所有营业 part1讲下怎么解决小问题 part2分享谈判过程 part3mark张兄的奶茶 PART1 linux下批量修改文件后缀名以及合并多行 近期师兄在做 ...

  8. java例程练习(批量修改文件后缀名)

    /*** 文件后缀名修改器* 说明:UI部分* @author Yours风之恋* * 创建时间:2012-8-8**/ public class UserInterface {public stat ...

  9. 玩点不一样的,如何使用MATLAB实现批量修改文件后缀名,文件名,批量复制文件

    1.  自动批量修改文件后缀名,有时非常有用. 对于文件名没有要求,不用是序列文件名.比如需要将abaqus的inp文件修改成txt文件,便于使用 textscan和 textread等函数操作. c ...

  10. java io 过滤数据,Java IO文件后缀名过滤总结

    实现效果:列出某个目录下的特定后缀名文件(如,列出D盘根目录下txt后缀的文件) import java.io.File; import java.io.FilenameFilter; public ...

最新文章

  1. POJ-1837 Balance
  2. 《数学之美》第2章自然语言处理从规则到统计
  3. 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和普通变量之完全解读...
  4. linux scp远程复制命令使用
  5. 远程备份SQL Server 2005数据库
  6. sklearn中的fit_transform和transform以及什么时候使用
  7. AlertView动画
  8. bzoj 3351 [ioi2009]Regions
  9. 场景法测试用例设计详解
  10. HTML <blockquote> 标签
  11. labview 游戏 打地鼠
  12. 如何使用阿里云国际版控制台使用海外云服务器-Unirech
  13. Touch panel DTS 分析(MSM8994平台,Atmel 芯片)
  14. 全球十大航天发射基地
  15. V4L2采集yuv视频花屏:Linux视频采集与编码(一)
  16. 手把手教linux设备驱动,手把手教你写Linux设备驱动---定时器(一)(基于友善之臂4412开发板)...
  17. 计算机械功的公式,机械功的计算
  18. 分子对接教程 | (8) PyMOL可视化对接结果
  19. CentOS 5.3下 XMMS播放器编译安装
  20. jq和js的关系_jquery与js的区别是什么?

热门文章

  1. 计算VGG16的参数量
  2. 软考中级软件设计师--5面向对象基础
  3. 使用PR剪辑视频,mkv格式怎么无损转mp4
  4. Android 安装 GMS 方法
  5. Clover 驱动文件夹_使用Clover安装macOS入门指南
  6. 通信接口:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB
  7. 福州化工实验室建设注意隐患分析
  8. linux打包根目录
  9. ureport2学习笔记
  10. Smobiler客户端会话