您的位置:首页 > 编程语言 > Java开发

Java创建、重命名、删除文件和文件夹

2016-12-02 21:39 447 查看
package my.file;  

  

import <a href="http://lib.csdn.net/base/java" class='replace_word' title="Java 知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.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;  

 }  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java