2 jonskeet JonSkeet 于 2013.03.22 17:17 提问

在 android 目录中过滤文件

我从图像库文件夹中获取图像,并把它保存在一个数组列表中。现在我只想提取有.jpg扩展的文件。如何实现呢?

private List<String> ReadSDCard()
    {
     //It have to be matched with the directory in SDCard
     File f = new File("sdcard/data/crak");

     File[] files=f.listFiles();

     for(int i=0; i<files.length; i++)
     {
      File file = files[i];
      /*It's assumed that all file in the path are in supported type*/
      tFileList.add(file.getPath());
     }
     return tFileList;
    }

3个回答

LiDaming_and
LiDaming_and   2013.03.26 17:11
已采纳

使用 Java String 类中的.endsWith()方法来检查文件路径中的 File Extension。
Method:

public boolean endsWith(String suffix)

代码如下:

private List<String> ReadSDCard()
{
     //It have to be matched with the directory in SDCard
     File f = new File("sdcard/data/crak");

     File[] files=f.listFiles();

     for(int i=0; i<files.length; i++)
     {
      File file = files[i];
      /*It's assumed that all file in the path are in supported type*/
      String filePath = file.getPath();
      if(filePath.endsWith(".jpg")) // Condition to check .jpg file extension
      tFileList.add(filePath);
     }
 return tFileList;
}
wu_shu_jun
wu_shu_jun   2013.03.26 11:52
if (file.getAbsolutePath().endsWith(".jpg")) {
tFileList.add(file.getPath());

}

ssummeraw
ssummeraw   2013.03.26 17:17

你可以使用 FilenameFilter 接口来过滤文件。
把代码:File[] files=f.listFiles();
改成:

File[] jpgfiles = f.listFiles(new FilenameFilter() {
    public boolean accept(File dir, String name)
    {
        return (name.endsWith(".jpg")||name.endsWith(".jpeg")); 
    }
});
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android系统编译,排除部分文件夹,不去包含其目录下的Android.mk
芯片厂商提供的android系统的SDK中分为三部分:android系统源码,kernel源码,boot源码,interface源码.project:            |            ——android            ——kernel            ——boot            ——interface如果要形成完整的镜像,要分别编译个部分,之后将其生成文件复制...
Eclipse中Android项目SVN过滤的目录
虽然现在已转战AndroidStudio了。但还是对Eclipse有着那份情怀。以备以后不时之需。 Eclipse中SVN过滤指定文件夹或文件下内容 Eclipse中SVN过滤指定文件夹或文件下内容 通过Eclipse开发过程中,大多数正式项目都会通过SVN等管理,所以在使用SVN中,难免会遇到不需要或不允许提交的文件列表出现同步列表里(例如Android开发过程中会自动bin、gen这些本地编译
Android Studio 工程版本控制过滤文件
Android Studio 中建议过滤的文件: - .idea 文件夹 - .gradle 文件夹 - 所有的 build 文件夹 - 所有的 .iml 文件 - local.properties 文件
android过滤隐藏文件FileFilter
File f = Environment.getExternalStorageDirectory();//读取SD卡路径 FileFilter ff = new FileFilter() { public boolean accept(File pathname) { // TODO Auto-generated method stub        return !pathn
Android下的实现对本地指定和筛选文件的目录显示
Android下的实现对本地指定和筛选文件的目录显示 博客分类: 2014-09-Android 实现对本地指定文件目录下的显示 文件筛选ListViewSimpleAdapter  条件:        1.我们需要得到一些路径,某个文件目录下的。比如:"/kgmusic/download/' 下的。我打开手机看的是这个路径。        2. 我们是为了筛选出
grep过滤目录或文件方法
在使用grep在指定目录下查找包含指定字符串的文件是,我们想过滤(即不递归查询指定目录)时!可以使用 –exclude-dir 参数 单个目录实例 搜索.目录但不搜索在.目录下的.svg目录中包含“string”字符串的文件 grep -E &quot;string&quot; . -R --exclude-dir=.svg 多个目录实例 过滤.git,res,bin目录 grep -...
tar打包过滤某个文件及目录
ip=ip add|grep eth0|grep -i inet|awk '{print $2}'|cut -d '/' -f 1   cd /data   tar -zvcf `echo $ip`_`date +%Y%m%d`_abc.tar.gz --exclude=/abc/soft/  --exclude=*.svn  /abc   sz $ip_root.tar.gz   以上打
Android静态安全检测 -> Zip文件目录遍历漏洞
Zip文件目录遍历漏洞 - ZipEntry.getName方法 一、API 1. 继承关系 【1】java.lang.Object 【2】java.util.zip.ZipEntry 2. 主要方法 【1】getName()   返回String(entry的名字) 【2】isDirectory()  返回Boolean(是否为dir
Atom过滤工程文件
Atom增加工程文件会显示所有文件在列表中,怎么过滤掉一些我们根本就不会去编辑的文件使用Atom增加工程目录会把目录下的所有文件都显示到工程中,但是有些文件其实我们不会去编辑的如:图片。通过下面两步就可以过滤掉: 打开Settings,找到Ignored Names,如下: .git, .hg, .svn, .DS_Store, ._*, Thumbs.db 在后面添加我们需要过滤的文件后缀,如过
Eclipse中SVN过滤指定文件夹或文件下内容
Eclipse中SVN过滤指定文件夹或文件下内容  通过Eclipse开发过程中,大多数正式项目都会通过SVN等管理,所以在使用SVN中,难免会遇到不需要或不允许提交的文件列表出现同步列表里(例如Android开发过程中会自动bin、gen这些本地编译的文件夹,都是不需要提交且不允许提交的内容),下面所说的就是在Eclipse中过滤不需要提交的内容     首先找到Eclipse中版本控制设置界面