javaIO流练习1获取文件夹下所有的文件

package yuecheng.ch18.lianxi2;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * 这是一个获取目录下所有文件夹内的所有文件的封装类
 */
public class Text2
{
//获取文件夹下所有的文件
public static List<File> getAllFiles(String dir){

    //创建一个集合存放遍历到的File
    List< File >files=new ArrayList<File>();

    File file=new File(dir);
    if (file.exists()&&file.isDirectory()) {
        // 这里要本身一直遍历
//把遍历得到的东西存放在files里面

longErgodic(file,files); 

}

return files;}//这是一个递归方法,会不断来回调用本身,但是所有获得的数据都会存放在集合files里面

private static void longErgodic(File file, List<File> files) 

  //.listFiles()方法的使用 //把文件夹的所有文件(包括文件和文件名)都放在一个文件类的数组里面 

File[] fillArr=file.listFiles(); 

  //如果是一个空的文件夹

if (fillArr==null

  //后面的不执行,直接返回 

return;

 } 

  //如果文件夹有内容,遍历里面的所有文件(包括文件夹和文件),都添加到集合里面 

for (File file2 : fillArr) 

  //如果只是想要里面的文件或者文件夹或者某些固定格式的文件可以判断下再添加 

files.add(file2); 

  //添加到集合后,在来判断是否是文件夹,再遍历里面的所有文件 //方法的递归 l

ongErgodic(file2, files);

 }

}

}


---------------------------------------------------------------------------------------------

package yuecheng.ch18.lianxi2;

import yuecheng.ch18.lianxi2.Text2;

import java.io.File;
import java.util.List;

public class Test_2
{
/**
 * 递归实现输入任意目录,列出文件以及文件夹
 *
 * 设计:在FileUtils类里面实现了逻辑操作,在另一边调用就可以了
 * */
public static void main(String[] args) {
    //比如输入E盘
    List<File>list=Text2.getAllFiles("F:");
    //输出所有的文件和文件夹的名字
    for (File file : list) {
        System.out.println(file);
    }

}

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值