import java.util.List; import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; public class MyFile extends File { private static final long serialVersionUID = 1L; public MyFile(String arg0) { super(arg0); } public List listFilesRecurse() { List list = new ArrayList(); for(File file : listFiles()) { if(file.isDirectory()) { MyFile _tmp = (MyFile) file; list.addAll(_tmp.listFilesRecurse()); } else { list.add(file); } } return list; } public List listFilesRecurse(FileFilter ff) { List list = new ArrayList(); for(File file : listFiles(ff)) { if(file.isDirectory()) { MyFile _tmp = (MyFile) file; list.addAll(_tmp.listFilesRecurse(ff)); } else { list.add(file); } } return list; } public List listDirsRecurse() { List list = new ArrayList(); for(File file : listFiles()) { if(file.isDirectory()) { MyFile _tmp = (MyFile) file; list.addAll(_tmp.listDirsRecurse()); list.add(file); } } return list; } public List listDirsRecurse(FileFilter ff) { List list = new ArrayList(); for(File file : listFiles(ff)) { if(file.isDirectory()) { MyFile _tmp = (MyFile) file; list.addAll(_tmp.listDirsRecurse(ff)); list.add(file); } } return list; } public boolean deleteDir() { for(File file : listFilesRecurse()) { if(!file.delete()) return false; } for(File dir : listDirsRecurse()) { if(!dir.delete()) return false; } return this.delete(); } public boolean copy(File toDir) { return true; } public boolean copy(String newName) { return true; } public boolean copy(String newName, boolean preserveTime) { return true; } public ArrayList readLines() throws IOException { ArrayList list = new ArrayList(); FileInputStream fis = new FileInputStream(this); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String strLine; while((strLine = br.readLine())!= null) { list.add(strLine); } fis.close(); return list; } public static void main(String[] args) { } }