使用递归操作文件的两个例子
1.使用递归删除某一目录下的全部文件
package com.lfl.file;import java.io.File;public class DeleteAllFileTest {public static void deleteAll(File file) {if (file.isFile() || file.list().length == 0) {file.delete();} else {File[] files = file.listFiles();for (File f : files) {deleteAll(f);f.delete();}file.delete();}}public static void main(String[] args) {File file = new File("G:\\myfirstsite222");deleteAll(file);}}?
?
2.使用递归遍历某一目录下的所有文件,并以树形结构显示
package com.lfl.file;import java.io.File;import java.util.ArrayList;import java.util.List;public class ListAllFileTest {private static int level;public static void deepList(File file) {if (file.isFile() || file.list().length == 0) {return;} else {File[] files = file.listFiles();files = sort(files);for (File f : files) {StringBuilder output = new StringBuilder();if (f.isFile()) {output.append(getLevel(level));output.append(f.getName());} else {output.append(getLevel(level));output.append(f.getName());output.append("\\");}System.out.println(output.toString());if (f.isDirectory()) {level ++;deepList(f);level --;}}}}public static File[] sort(File[] files) {List<File> list = new ArrayList<File>();List<File> fileList = new ArrayList<File>();for (File f : files) {if (f.isDirectory()) list.add(f);else fileList.add(f);}list.addAll(fileList);return list.toArray(new File[files.length]);}public static String getLevel(int level) {StringBuilder sb = new StringBuilder();for (int i=0; i < level; i++) {sb.append("\t");}return sb.toString();}public static void main(String[] args) {File file = new File("G:/222");deepList(file);}}?
?