package my.file;  
  
 import java.io.File;  
 import java.io.FileOutputStream;  
 import java.io.OutputStreamWriter;  
 import java.io.Writer;  
  
 public class TravelAllFile {  
  public static void main(String[] args) {  
   String path = "E:/文件夹";  
   File f = new File(path);  
   if (f.isDirectory()) {  
    new TravelAllFile().getFileName(f);  
   }  
     
   delFolder("E:/文件夹");  
   System.out.println("deleted");  
  }  
    
  // 递归查找函数,参数为file对象  
  public void getFileName(File f) {  
   // File 数组  
   File[] files = f.listFiles();  
  
   for (int i = 0; i < files.length; i++) {  
    // 递归出子目录  
    if (files[i].isDirectory()) {  
     System.out.println("子目录是:" + files[i].getName());  
     getFileName(files[i]);  
     // 递归出子文件  
    } else {  
     System.out.println(files[i].getName());  
    }  
  
   }  
  }  
  
  //重命名  
  public void rename(){  
   File fl=new File("E:\\文件夹");  // 这里写上发替换的文件夹路径,注意使用双斜杠  
     String[] files=fl.list();  
     File f=null;  
     String filename="";  
     for(String file:files)  
     {  
      f=new File(fl,file);// 注意,这里一定要写成File(fl,file)如果写成File(file)是行不通的,一定要全路径  
      filename=f.getName();  
      // System.out.println(filename);  
      f.renameTo(new File(fl.getAbsolutePath()+"\\"+filename.replace("要替换掉的内容", "替换成的内容")));// 这里可以反复使用replace替换,当然也可以使用正则表达式来替换了  
        
     }  
  }  
    
  //删除文件夹  
  //param folderPath 文件夹完整绝对路径  
  
  public static void delFolder(String folderPath) {  
   try {  
    delAllFile(folderPath); //删除完里面所有内容  
    String filePath = folderPath;  
    filePath = filePath.toString();  
    java.io.File myFilePath = new java.io.File(filePath);  
    myFilePath.delete(); //删除空文件夹  
   } catch (Exception e) {  
    e.printStackTrace();  
   }  
  }  
  
  //删除指定文件夹下所有文件  
  //param path 文件夹完整绝对路径  
  public static boolean delAllFile(String path) {  
   boolean flag = false;  
   File file = new File(path);  
   if (!file.exists()) {  
    return flag;  
   }  
   if (!file.isDirectory()) {  
    return flag;  
   }  
   String[] tempList = file.list();  
   File temp = null;  
   for (int i = 0; i < tempList.length; i++) {  
    if (path.endsWith(File.separator)) {  
     temp = new File(path + tempList[i]);  
    } else {  
     temp = new File(path + File.separator + tempList[i]);  
    }  
    if (temp.isFile()) {  
     temp.delete();  
    }  
    if (temp.isDirectory()) {  
     delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件  
     delFolder(path + "/" + tempList[i]);//再删除空文件夹  
     flag = true;  
    }  
   }  
   return flag;  
  }  
    
  /** 
   * 创建目录 
   * @param dirPath 
   */ 
  static Boolean createDir(String dirPath){  
   File dirFile = new File(dirPath);  
   return dirFile.mkdirs();  
  }  
    
  /** 
   * 创建文件 
   * @param filePath 
   * @param content 
   * @return Boolean 
   */ 
  static Boolean createFile(String filePath,String content){  
   Writer writer = null;  
   File file = new File(filePath);  
   File temp = new File(file.getParent());  
   if(!temp.exists()){  
    createDir(file.getParent());  
   }  
   try{  
    writer = new OutputStreamWriter(new FileOutputStream(file));  
    writer.write( content );  
   }catch(Exception e){  
    e.printStackTrace();  
    return false;  
   }finally{  
    try{  
     if(writer!=null){  
      writer.close();  
     }  
    }catch(Exception e1){  
     e1.printStackTrace();  
    }  
   }  
   return true;  
  }  
 }