Java 文件文件夹增删移动复制操作

public class FileOperate {    
  public FileOperate() {    
  }    
     
  public static void main(String args[]){   
      newFolder("D:/100");   
 
  }   
 
  /**   
    * 新建目录   
    * @param folderPath String 如 c:/fqf   
    * @return boolean   
    */    
  public static void newFolder(String folderPath) {    
      try {    
          String filePath = folderPath;    
          filePath = filePath.toString();    
          java.io.File myFilePath = new java.io.File(filePath);    
          if (!myFilePath.exists()) {    
              myFilePath.mkdir();    
          }    
      }    
      catch (Exception e) {    
          System.out.println("新建目录操作出错");    
          e.printStackTrace();    
      }    
  }    
 
  /**   
    * 新建文件   
    * @param filePathAndName String 文件路径及名称 如c:/fqf.txt   
    * @param fileContent String 文件内容   
    * @return boolean   
    */    
  public static void newFile(String filePathAndName, String fileContent) {    
 
      try {    
          String filePath = filePathAndName;    
          filePath = filePath.toString();    
          File myFilePath = new File(filePath);    
          if (!myFilePath.exists()) {    
              myFilePath.createNewFile();    
          }    
          FileWriter resultFile = new FileWriter(myFilePath);    
          PrintWriter myFile = new PrintWriter(resultFile);    
          String strContent = fileContent;    
          myFile.println(strContent);    
          resultFile.close();    
 
      }    
      catch (Exception e) {    
          System.out.println("新建目录操作出错");    
          e.printStackTrace();    
 
      }    
 
  }    
 
  /**   
    * 删除文件   
    * @param filePathAndName String 文件路径及名称 如c:/fqf.txt   
    * @param fileContent String   
    * @return boolean   
    */    
  public static void delFile(String filePathAndName) {    
      try {    
          String filePath = filePathAndName;    
          filePath = filePath.toString();    
          java.io.File myDelFile = new java.io.File(filePath);    
          myDelFile.delete();    
 
      }    
      catch (Exception e) {    
          System.out.println("删除文件操作出错");    
          e.printStackTrace();    
 
      }    
 
  }    
 
  /**   
    * 删除文件夹   
    * @param filePathAndName String 文件夹路径及名称 如c:/fqf   
    * @param fileContent String   
    * @return boolean   
    */    
  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) {    
           System.out.println("删除文件夹操作出错");    
           e.printStackTrace();    
  
       }    
  
   }    
  
   /**   
     * 删除文件夹里面的所有文件   
     * @param path String 文件夹路径 如 c:/fqf   
     */    
   public static void delAllFile(String path) {    
       File file = new File(path);    
       if (!file.exists()) {    
           return;    
       }    
       if (!file.isDirectory()) {    
           return;    
       }    
       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]);//再删除空文件夹    
           }    
       }    
   }    
  
   /**   
     * 复制单个文件   
     * @param oldPath String 原文件路径 如:c:/fqf.txt   
     * @param newPath String 复制后路径 如:f:/fqf.txt   
     * @return boolean   
     */    
   public static void copyFile(String oldPath, String newPath) {    
       try {    
           int bytesum = 0;    
           int byteread = 0;    
           File oldfile = new File(oldPath);    
           if (oldfile.exists()) { //文件存在时    
               InputStream inStream = new FileInputStream(oldPath); //读入原文件    
               FileOutputStream fs = new FileOutputStream(newPath);    
               byte[] buffer = new byte[1444];    
               int length;    
               while ( (byteread = inStream.read(buffer)) != -1) {    
                   bytesum += byteread; //字节数 文件大小    
                   System.out.println(bytesum);    
                   fs.write(buffer, 0, byteread);    
               }    
               inStream.close();    
           }    
       }    
       catch (Exception e) {    
           System.out.println("复制单个文件操作出错");    
           e.printStackTrace();    
  
       }    
  
   }    
  
   /**   
     * 复制整个文件夹内容   
     * @param oldPath String 原文件路径 如:c:/fqf   
     * @param newPath String 复制后路径 如:f:/fqf/ff   
     * @return boolean   
     */    
   public static void copyFolder(String oldPath, String newPath) {    
  
       try {    
           (new File(newPath)).mkdirs(); //如果文件夹不存在 则建立新文件夹    
           File a=new File(oldPath);    
           String[] file=a.list();    
           File temp=null;    
           for (int i = 0; i < file.length; i++) {    
               if(oldPath.endsWith(File.separator)){    
                   temp=new File(oldPath+file[i]);    
               }    
               else{    
                   temp=new File(oldPath+File.separator+file[i]);    
               }    
  
               if(temp.isFile()){    
                   FileInputStream input = new FileInputStream(temp);    
                   FileOutputStream output = new FileOutputStream(newPath + "/" +    
                           (temp.getName()).toString());    
                   byte[] b = new byte[1024 * 5];    
                   int len;    
                   while ( (len = input.read(b)) != -1) {    
                       output.write(b, 0, len);    
                   }    
                   output.flush();    
                   output.close();    
                   input.close();    
               }    
               if(temp.isDirectory()){//如果是子文件夹    
                   copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);    
               }    
           }    
       }    
       catch (Exception e) {    
           System.out.println("复制整个文件夹内容操作出错");    
           e.printStackTrace();    
  
       }    
  
   }    
  
   /**   
     * 移动文件到指定目录   
     * @param oldPath String 如:c:/fqf.txt   
     * @param newPath String 如:d:/fqf.txt   
     */    
   public static void moveFile(String oldPath, String newPath) {    
       copyFile(oldPath, newPath);    
       delFile(oldPath);    
  
   }    
  
   /**   
     * 移动文件到指定目录   
     * @param oldPath String 如:c:/fqf.txt   
     * @param newPath String 如:d:/fqf.txt   
     */    
   public static void moveFolder(String oldPath, String newPath) {    
       copyFolder(oldPath, newPath);    
       delFolder(oldPath);    
  
   }    
}   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值