文件工具類
package com.geotmt.billingcenter.common.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
/**
* @Description 文件操作工具類
* @Author yanghanwei
* @Mail [email protected]
* @Date 2017/5/7 17:26
* @Version v1
**/
public class FileUtil {
private static final Logger logger = LoggerFactory.getLogger(FileUtil.class);
/**
* 判斷是否是文件
* @param filepath
* @return
*/
public static boolean isFile(String filepath) {
File file = new File(filepath);
return file.exists() && file.isFile();
}
/**
* 判斷是否是文件夾
* @param dirPath
* @return
*/
public static boolean isDir(String dirPath) {
File file = new File(dirPath);
return file.exists() && file.isDirectory();
}
/**
* 創建多級目錄
* @param path
*/
public static void makeDirs(String path) {
File file = new File(path);
// 如果文件夾不存在則創建
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}else {
logger.error("創建目錄失敗:[{}]",path);
}
}
/**
* 刪除文件,可以是文件或文件夾
* @param fileName 要刪除的文件名
* @return 刪除成功返回true,否則返回false
*/
public static boolean delete(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("刪除文件失敗:" + fileName + "不存在!");
return false;
} else {
if (file.isFile()){
return deleteFile(fileName);
}
else{
return deleteDirectory(fileName);
}
}
}
/**
* 刪除單個文件
*
* @param fileName
* 要刪除的文件的文件名
* @return 單個文件刪除成功返回true,否則返回false
*/
public static boolean deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路徑所對應的文件存在,並且是一個文件,則直接刪除
if (file.exists() && file.isFile()) {
if (file.delete()) {
System.out.println("刪除單個文件" + fileName + "成功!");
return true;
} else {
System.out.println("刪除單個文件" + fileName + "失敗!");
return false;
}
} else {
System.out.println("刪除單個文件失敗:" + fileName + "不存在!");
return false;
}
}
/**
* 刪除目錄及目錄下的文件
*
* @param dir
* 要刪除的目錄的文件路徑
* @return 目錄刪除成功返回true,否則返回false
*/
public static boolean deleteDirectory(String dir) {
// 如果dir不以文件分隔符結尾,自動添加文件分隔符
if (!dir.endsWith(File.separator)){
dir = dir + File.separator;
}
File dirFile = new File(dir);
// 如果dir對應的文件不存在,或者不是一個目錄,則退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
System.out.println("刪除目錄失敗:" + dir + "不存在!");
return false;
}
boolean flag = true;
// 刪除文件夾中的所有文件包括子目錄
File[] files = dirFile.listFiles();
for (int i = 0; i < files.length; i++) {
// 刪除子文件
if (files[i].isFile()) {
flag = FileUtil.deleteFile(files[i].getAbsolutePath());
if (!flag){
break;
}
}
// 刪除子目錄
else if (files[i].isDirectory()) {
flag = FileUtil.deleteDirectory(files[i]
.getAbsolutePath());
if (!flag){
break;
}
}
}
if (!flag) {
System.out.println("刪除目錄失敗!");
return false;
}
// 刪除當前目錄
if (dirFile.delete()) {
System.out.println("刪除目錄" + dir + "成功!");
return true;
} else {
return false;
}
}
public static void main(String[] args) {
String fileName = "E:\\data914298c8-51aa-4822-978a-77e96944e339.jpg";
boolean delete = FileUtil.delete(fileName);
System.out.println(delete);
}
}