1. package com.umgsai.txyl.util; 
  2.  
  3. import java.io.File; 
  4.  
  5. public class FileOperater { 
  6.     // 验证字符串是否为正确路径名的正则表达式 
  7.     private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*"
  8.  
  9.     // 通过 sPath.matches(matches) 方法的返回值判断是否正确 
  10.     // sPath 为路径字符串 
  11.     /** 
  12.      * 根据路径删除指定的目录或文件,无论存在与否 
  13.      *  
  14.      * @param sPath 
  15.      *            要删除的目录或文件 
  16.      * @return 删除成功返回 true,否则返回 false。 
  17.      */ 
  18.     public static boolean DeleteFolder(String sPath) { 
  19.         boolean flag = false
  20.         File file = new File(sPath); 
  21.         // 判断目录或文件是否存在 
  22.         if (!file.exists()) { // 不存在返回 false 
  23.             return flag; 
  24.         } else { 
  25.             // 判断是否为文件 
  26.             if (file.isFile()) { // 为文件时调用删除文件方法 
  27.                 return deleteFile(sPath); 
  28.             } else { // 为目录时调用删除目录方法 
  29.                 return deleteDirectory(sPath); 
  30.             } 
  31.         } 
  32.     } 
  33.  
  34.     /** 
  35.      * 删除单个文件 
  36.      *  
  37.      * @param sPath 
  38.      *            被删除文件的文件名 
  39.      * @return 单个文件删除成功返回true,否则返回false 
  40.      */ 
  41.     public static boolean deleteFile(String sPath) { 
  42.         boolean flag = false
  43.         File file = new File(sPath); 
  44.         // 路径为文件且不为空则进行删除 
  45.         if (file.isFile() && file.exists()) { 
  46.             file.delete(); 
  47.             flag = true
  48.         } 
  49.         return flag; 
  50.     } 
  51.  
  52.     /** 
  53.      * 删除目录(文件夹)以及目录下的文件 
  54.      *  
  55.      * @param sPath 
  56.      *            被删除目录的文件路径 
  57.      * @return 目录删除成功返回true,否则返回false 
  58.      */ 
  59.     public static boolean deleteDirectory(String sPath) { 
  60.         // 如果sPath不以文件分隔符结尾,自动添加文件分隔符 
  61.         if (!sPath.endsWith(File.separator)) { 
  62.             sPath = sPath + File.separator; 
  63.         } 
  64.         File dirFile = new File(sPath); 
  65.         // 如果dir对应的文件不存在,或者不是一个目录,则退出 
  66.         if (!dirFile.exists() || !dirFile.isDirectory()) { 
  67.             return false
  68.         } 
  69.         boolean flag = true
  70.         // 删除文件夹下的所有文件(包括子目录) 
  71.         File[] files = dirFile.listFiles(); 
  72.         for (int i = 0; i < files.length; i++) { 
  73.             // 删除子文件 
  74.             if (files[i].isFile()) { 
  75.                 flag = deleteFile(files[i].getAbsolutePath()); 
  76.                 if (!flag) 
  77.                     break
  78.             } // 删除子目录 
  79.             else { 
  80.                 flag = deleteDirectory(files[i].getAbsolutePath()); 
  81.                 if (!flag) 
  82.                     break
  83.             } 
  84.         } 
  85.         if (!flag) 
  86.             return false
  87.         // 删除当前目录 
  88.         if (dirFile.delete()) { 
  89.             return true
  90.         } else { 
  91.             return false
  92.         } 
  93.     } 
  94.  
  95.     public static boolean CreateFile(String destFileName) { 
  96.         File file = new File(destFileName); 
  97.         if (file.exists()) { 
  98.             System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!"); 
  99.             return false
  100.         } 
  101.         if (destFileName.endsWith(File.separator)) { 
  102.             System.out.println("创建单个文件" + destFileName + "失败,目标不能是目录!"); 
  103.             return false
  104.         } 
  105.         if (!file.getParentFile().exists()) { 
  106.             System.out.println("目标文件所在路径不存在,准备创建。。。"); 
  107.             if (!file.getParentFile().mkdirs()) { 
  108.                 System.out.println("创建目录文件所在的目录失败!"); 
  109.                 return false
  110.             } 
  111.         } 
  112.         // 创建目标文件 
  113.         try { 
  114.             if (file.createNewFile()) { 
  115.                 System.out.println("创建单个文件" + destFileName + "成功!"); 
  116.                 return true
  117.             } else { 
  118.                 System.out.println("创建单个文件" + destFileName + "失败!"); 
  119.                 return false
  120.             } 
  121.         } catch (Exception e) { 
  122.             e.printStackTrace(); 
  123.             System.out.println("创建单个文件" + destFileName + "失败!"); 
  124.             return false
  125.         } 
  126.     } 
  127.  
  128.     public static boolean createDir(String destDirName) { 
  129.         File dir = new File(destDirName); 
  130.         if (dir.exists()) { 
  131.             System.out.println("创建目录" + destDirName + "失败,目标目录已存在!"); 
  132.             return false
  133.         } 
  134.         if (!destDirName.endsWith(File.separator)) 
  135.             destDirName = destDirName + File.separator; 
  136.         // 创建单个目录 
  137.         if (dir.mkdirs()) { 
  138.             System.out.println("创建目录" + destDirName + "成功!"); 
  139.             return true
  140.         } else { 
  141.             System.out.println("创建目录" + destDirName + "成功!"); 
  142.             return false
  143.         } 
  144.     } 
  145.  
  146.     public static String createTempFile(String prefix, String suffix, 
  147.             String dirName) { 
  148.         File tempFile = null
  149.         try { 
  150.             if (dirName == null) { 
  151.                 // 在默认文件夹下创建临时文件 
  152.                 tempFile = File.createTempFile(prefix, suffix); 
  153.                 return tempFile.getCanonicalPath(); 
  154.             } else { 
  155.                 File dir = new File(dirName); 
  156.                 // 如果临时文件所在目录不存在,首先创建 
  157.                 if (!dir.exists()) { 
  158.                     if (!FileOperater.createDir(dirName)) { 
  159.                         System.out.println("创建临时文件失败,不能创建临时文件所在目录!"); 
  160.                         return null
  161.                     } 
  162.                 } 
  163.                 tempFile = File.createTempFile(prefix, suffix, dir); 
  164.                 return tempFile.getCanonicalPath(); 
  165.             } 
  166.         } catch (Exception e) { 
  167.             e.printStackTrace(); 
  168.             System.out.println("创建临时文件失败" + e.getMessage()); 
  169.             return null
  170.         } 
  171.     } 
  172.  
  173.     public static void main(String[] args) { 
  174. /* 
  175.         FileOperater hfc = new FileOperater(); 
  176.         String path = "D:\\Abc\\123\\Ab1"; 
  177.         boolean result = createDir(path); 
  178.         System.out.println(result); 
  179.         path = "D:\\Abc\\124"; 
  180.         result = hfc.DeleteFolder(path); 
  181.         System.out.println(result); 
  182.  
  183.         // 创建目录 
  184.         String dirName = "c:/test/test0/test1"; 
  185.         createDir(dirName); 
  186.         // 创建文件 
  187.         String fileName = dirName + "/test2/testFile.txt"; 
  188.         CreateFile(fileName); 
  189.         // 创建临时文件 
  190.         String prefix = "temp"; 
  191.         String suffix = ".txt"; 
  192.         for (int i = 0; i < 10; i++) { 
  193.             System.out.println("创建了临时文件:" 
  194.                     + createTempFile(prefix, suffix, dirName)); 
  195.         }*/ 
  196.         //deleteFile("c:/test/test0/test1/test2/testFile.txt"); 
  197.         //deleteDirectory("c:/test/"); 
  198.     }