Java实现遍历文件夹

(这几天想写一个Android音乐播放器,在解决如何解码音频文件后,我又遇到如何查找手机中的音频文件的问题。今天上网搜索了一下各种技术博客,找到了几种实现方法。想着记录下来,方便以后查看,也给有同样疑问的网友提供一个参考)

———————————————————————————分割线————————————————————————————————————————————————

正式开始

一、实现文件夹遍历需要的背景知识:

了解File类


二、背景知识

File类

构造方法:

a.通过给定的父抽象路径名和子路径名字符串创建一个新的File实例。

File(File parent, String child);
b. 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例

File(String pathname) 


需要用到的方法:

a.测试此抽象路径名表示的文件是否是一个标准文件。

public boolean isFile()


b.测试此抽象路径名表示的文件是否是一个目录。

public boolean isDirectory()


c.返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。

public File[] listFiles()

d.返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null

public String getParent()


e.返回抽象路径名的绝对路径名字符串。

public String getAbsolutePath()

 


  三、遍历的实现

下面我将用递归实现对文件夹的遍历,并输出满足条件的文件名称(本例中指定为mp3文件

(下面给出源码,有了基础知识,相信大家能看懂,我就不解释了。)

<pre name="code" class="java">import java.io.File;

public class SearchFile{
   public static void findFileByEndStr(String dirStr, String str) {
        // 用dirStr创建一个File对象,指向你要查找的文件夹。请确保dirstr是有效的路径,如d:/music
        File dir = new File(dirStr);
        // 得到dir目录中的全部文件、文件夹的路径
        File[] files = dir.listFiles();
        for (File file : files) {
            //筛选出符合要求的文件,并输出文件名,和路径
            if (file.isFile() && file.toString().endsWith(str)) {
                System.out.println("fileName:" + file.getName() + "----->" + file.getAbsolutePath());
            }
            //递归调用
            if (file.isDirectory()) {
                findFileByEndStr(file.toString(), str);
            }
        }
    }

    public static void main(String[] args) {
      findFileByEndStr("d:/music",".mp3");
    }
 }


 
四、结果 

源码:



结果:



从上图可以看出:music目录下有两个mp3文件,一个在d:\music目录里,里一个在d:\music\song目录中

这个我的目录结果一样。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值