利用java.io.File类实现遍历本地磁盘上指定盘符或文件夹的所有的文件

时间:2022-06-24 12:39:42

 2016-11-18

 这是本人的第一篇随笔博客,纠结了半天还是选择自己学的时候比较用心的一些知识点上。利用java.io.File类指定本地的文件夹进行遍历所有的文件。

package org.lxm.filedemo;

import java.io.File;
import java.util.Scanner;

/*
 * 本程序是将某个盘的所有文件夹及其文件全部调出来的操作
 */

public class FileAllDemo {


    public static void main(String[] args) {
               // 通过Scanner进行交互
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要打印出的文件夹:(windows下分隔符请使用“\\”)");
               // 接收输入的内容
        String pan = sc.next();
               // 实例化File类
        File file = new File(pan);
              // 调用lists方法
        lists(file);
    }

    public static void lists(File file) {
        if (file.isDirectory()) { // 判断是否为文件夹 
            File[] list = file.listFiles(); // 使用数组接收带有完整路径的文件夹
            if (list != null) {
                               // 循环遍历文件
                for (int i = 0; i < list.length; i++) {
                    lists(list[i]);
                }
            }
               // 输出文件名称
        System.out.println(file);
        }
    }

}

以上就是实现的代码。

  File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。其中路径中由于windows和linu系统使用的符号不同,所以通常使用File.separator(此处为常量)进行分隔,用法示例如 File file = new File("E:"+File.separator+"1.jpg");

  经常用到的方法有createNewFile()方法,表示创建一个新的文件,创建时必须指定一个路径,用法示例如以上的file不存在,则可使用 file.createNewFile()进行创建,此时会抛出异常,需要try{//创建代码}catch(IOException e){}或throws进行处理,这里不做重点;

  mkdir()方法,表示创建文件夹命令,和上面一样,必须指定一个路径,如 File file1 = new File("E:"+File.separator+"java");file1.mkdir();则在指定路径上将创建一个java文件夹;

  delete()方法,表示删除指定路径的文件,用法如若删除以上创建的文件则file.delete();就可将文件删除;

  exists()方法,表示测试指定路径的文件是否存在,返回的是一个布尔值,true或false,用法如以上将file删除之后测试file.exists()就会返回false,常用于if语句中;

  isFile()方法,表示测试指定路径的文件是否为一个文件,返回true或false,isDirectory()方法,表示指定的路径是否为一个文件夹,用法略;

  File[] listFiles()方法,利用数组进行指定文件夹的遍历,用法为先定义一个File filepath = new File("E:"+File.separator+"文件夹名称");File[] list = filepath.listFiles();再利用加强的for循环将文件夹名称下面的文件及文件夹遍历出来,如for(File lists : list){System.out.println(lists);};

  String[] list()方法,和上面listFiles()方法类似,都是将指定文件夹下面的文件及文件夹遍历出来,用法相同,不同之处是使用list()方法遍历出来的内容是 根目录:\ 文件名,如 E:\文件名,而使用listFiles()方法遍历出来的内容是 根目录:\ 文件夹名\文件名,如 E:\文件夹名称\文件名。这是比较直观的区别;

  以上就是常用的方法,具体请参考API进行分析研究。