文件操作类

package utils;

import java.io.File;
import java.io.IOException;

public class FileUtil {
 public static void main(String[] args) {
  createDir("C:/Documents and Settings/Administrator/桌面/product/workloadStats");
 }
 
 public static boolean createDir(String destDirName) {
     File dir = new File(destDirName);
     if(dir.exists()) {
      System.out.println("创建目录" + destDirName + "失败,目标目录已存在!");
      return false;
     }
     if(!destDirName.endsWith(File.separator))
      destDirName = destDirName + File.separator;
     // 创建单个目录
     if(dir.mkdirs()) {
      System.out.println("创建目录" + destDirName + "成功!");
       return true;
     } else {
      System.out.println("创建目录" + destDirName + "失败!");
      return false;
     }
 }
 
 public static boolean createFile(String destFileName) {
     File file = new File(destFileName);
     if (file.exists()) {
      System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
      return false;
     }
     if (destFileName.endsWith(File.separator)) {
      System.out.println("创建单个文件" + destFileName + "失败,目标不能是目录!");
      return false;
     }
     if (!file.getParentFile().exists()) {
      System.out.println("目标文件所在路径不存在,准备创建。。。");
      if (!file.getParentFile().mkdirs()) {
       System.out.println("创建目录文件所在的目录失败!");
       return false;
      }
     }

     // 创建目标文件
     try {
      if (file.createNewFile()) {
       System.out.println("创建单个文件" + destFileName + "成功!");
       return true;
      } else {
       System.out.println("创建单个文件" + destFileName + "失败!");
       return false;
      }
     } catch (IOException e) {
      e.printStackTrace();
      System.out.println("创建单个文件" + destFileName + "失败!");
      return false;
     }
 }
 
 public static boolean deleteFile(String destFileName) {
  File file = new File(destFileName);
  return file.delete();
 }
 
 public static boolean deletefile(File f)
 {
     if (f.isFile())
      f.delete();
     return true;
 }
 
 public static boolean deletedir(File f){
  if(f.isDirectory())
     {
         File[] files = f.listFiles();
         for(int i=0;i<files.length;i++)
         {
             if(files[i].isDirectory()) deletedir(files[i]);
             else deletefile(files[i]);
         }
     }
     f.delete();
     return true;
 }

 

/**
 * 将delete目录下与standard目录下相同的文件移到delete目录下的deletedFile中
 */

public static boolean compareDir(File delete, File standard) {

  System.out.println("..........开始处理..........");

  int count = 0;

  File deletedFileDir = new File(delete.getAbsolutePath()
    + File.separator + "deletedFile");
  deletedFileDir.mkdirs();

  class MyFileFilter implements FileFilter {
   public boolean accept(File file) {
    if (file.isDirectory())
     return false;
    return true;
   }

  }

  File[] files1 = standard.listFiles(new MyFileFilter());
  File[] files2 = delete.listFiles(new MyFileFilter());
  System.out.println("基准目录中的文件个数=" + files1.length);
  System.out.println("处理目录中的文件个数=" + files2.length);
  for (int i = 0, len1 = files1.length; i < len1; i++) {
   File f1 = files1[i];
   for (int j = 0, len2 = files2.length; j < len2; j++) {
    File f2 = files2[j];
    if (f1.isFile() && f2.isFile()
      && f1.getName().equals(f2.getName())) {
     try {
      InputStream in = new BufferedInputStream(
        new FileInputStream(f2));
      File deletedFile = new File(deletedFileDir
        .getAbsolutePath()
        + File.separator + f2.getName());
      System.out.println(deletedFile.getAbsolutePath());
      count++;
      if (deletedFile.createNewFile()) {
       OutputStream out = new BufferedOutputStream(
         new FileOutputStream(deletedFile));
       byte[] buffer = new byte[1024];
       int byteread;
       while ((byteread = in.read(buffer)) != -1) {
        out.write(buffer, 0, byteread);
       }
       out.close();
      }
      in.close();
     } catch (Exception e) {
      e.printStackTrace();
     }
     f2.delete();
    }
   }
  }

  System.out.println("..........处理完毕..........");
  System.out.println("一共移动" + count + "个文件");
  return true;

 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值