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进行分析研究。