importjava.io.File;importjava.io.IOException;//创建新文件和目录
public classCCRDFile {//验证字符串是否为正确路径名的正则表达式
private static String matches = "[A-Za-z]:\\\\[^:?\">
boolean flag = false;
File file;public boolean DeleteFolder(String deletePath) {//根据路径删除指定的目录或文件,无论存在与否
flag = false;if(deletePath.matches(matches)) {
file= newFile(deletePath);if (!file.exists()) {//判断目录或文件是否存在
return flag; //不存在返回 false
} else{if (file.isFile()) {//判断是否为文件
return deleteFile(deletePath);//为文件时调用删除文件方法
} else{return deleteDirectory(deletePath);//为目录时调用删除目录方法
}
}
}else{
System.out.println("要传入正确路径!");return false;
}
}public boolean deleteFile(String filePath) {//删除单个文件
flag = false;
file= newFile(filePath);if (file.isFile() && file.exists()) {//路径为文件且不为空则进行删除
file.delete();//文件删除
flag = true;
}returnflag;
}public boolean deleteDirectory(String dirPath) {//删除目录(文件夹)以及目录下的文件//如果sPath不以文件分隔符结尾,自动添加文件分隔符
if (!dirPath.endsWith(File.separator)) {
dirPath= dirPath +File.separator;
}
File dirFile= newFile(dirPath);//如果dir对应的文件不存在,或者不是一个目录,则退出
if (!dirFile.exists() || !dirFile.isDirectory()) {return false;
}
flag= true;
File[] files= dirFile.listFiles();//获得传入路径下的所有文件
for (int i = 0; i < files.length; i++) {//循环遍历删除文件夹下的所有文件(包括子目录)
if (files[i].isFile()) {//删除子文件
flag =deleteFile(files[i].getAbsolutePath());
System.out.println(files[i].getAbsolutePath()+ " 删除成功");if (!flag)break;//如果删除失败,则跳出
} else {//运用递归,删除子目录
flag =deleteDirectory(files[i].getAbsolutePath());if (!flag)break;//如果删除失败,则跳出
}
}if (!flag)return false;if (dirFile.delete()) {//删除当前目录
return true;
}else{return false;
}
}//创建单个文件
public static booleancreateFile(String filePath) {
File file= newFile(filePath);if (file.exists()) {//判断文件是否存在
System.out.println("目标文件已存在" +filePath);return false;
}if (filePath.endsWith(File.separator)) {//判断文件是否为目录
System.out.println("目标文件不能为目录!");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("创建文件成功:" +filePath);return true;
}else{
System.out.println("创建文件失败!");return false;
}
}catch (IOException e) {//捕获异常
e.printStackTrace();
System.out.println("创建文件失败!" +e.getMessage());return false;
}
}//创建目录
public static booleancreateDir(String destDirName) {
File dir= newFile(destDirName);if (dir.exists()) {//判断目录是否存在
System.out.println("创建目录失败,目标目录已存在!");return false;
}if (!destDirName.endsWith(File.separator)) {//结尾是否以"/"结束
destDirName = destDirName +File.separator;
}if (dir.mkdirs()) {//创建目标目录
System.out.println("创建目录成功!" +destDirName);return true;
}else{
System.out.println("创建目录失败!");return false;
}
}//创建临时文件
public staticString createTempFile(String prefix, String suffix,
String dirName) {
File tempFile= null;if (dirName == null) {//目录如果为空
try{
tempFile= File.createTempFile(prefix, suffix);//在默认文件夹下创建临时文件
return tempFile.getCanonicalPath();//返回临时文件的路径
} catch (IOException e) {//捕获异常
e.printStackTrace();
System.out.println("创建临时文件失败:" +e.getMessage());return null;
}
}else{//指定目录存在
File dir = new File(dirName);//创建目录
if (!dir.exists()) {//如果目录不存在则创建目录
if(CCRDFile.createDir(dirName)) {
System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");return null;
}
}try{
tempFile= File.createTempFile(prefix, suffix, dir);//在指定目录下创建临时文件
return tempFile.getCanonicalPath();//返回临时文件的路径
} catch (IOException e) {//捕获异常
e.printStackTrace();
System.out.println("创建临时文件失败!" +e.getMessage());return null;
}
}
}public static voidmain(String[] args) {
String dirName= "E:/createFile/";//创建目录
CCRDFile.createDir(dirName);//调用方法创建目录
String fileName = dirName + "/file1.txt";//创建文件
CCRDFile.createFile(fileName);//调用方法创建文件
String prefix = "temp";//创建临时文件
String surfix = ".txt";//后缀
for (int i = 0; i < 10; i++) {//循环创建多个文件
System.out.println("创建临时文件: "//调用方法创建临时文件
+CCRDFile.createTempFile(prefix, surfix,
dirName));
}
}
}