package com.he.util;
import java.io.File;
/**
* 文件操作
*
* @author hemingdong
*
*/
public class FileOperation {
/**
* 刪除文件,可以是文件或文件夾
*
* @param fileName
* 要刪除的文件名
* @return 刪除成功返回true,否則返回false
*/
public static boolean deleteFileOrDirectory(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("刪除文件失敗:" + fileName + "不存在!");
return false;
} else {
if (file.isFile()){
boolean flag=false;
int state= deleteFile(fileName);
switch (state) {
case -1:
case 0:
flag=false;
break;
case 1:
flag = true;
break;
default:
flag=false;
break;
}
return flag;
}
else{
return deleteDirectory(fileName);
}
}
}
/**
* 刪除單個文件
*
* @param fileName
* 要刪除的文件的文件名
* @return 返回值說明:-1=文件不存在,0=刪除失敗,1=刪除成功
*/
public static int deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路徑所對應的文件存在,並且是一個文件,則直接刪除
if (file.exists() && file.isFile()) {
if (file.delete()) {
System.out.println("刪除單個文件" + fileName + "成功!");
return 1;
} else {
System.out.println("刪除單個文件" + fileName + "失敗!");
return 0;
}
} else {
System.out.println("刪除單個文件失敗:" + fileName + "不存在!");
return -1;
}
}
/**
* 刪除目錄及目錄下的文件
*
* @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()) {
int state= deleteFile(files[i].getAbsolutePath());
switch (state) {
case -1:
case 0:
flag=false;
break;
case 1:
flag = true;
break;
default:
flag=false;
break;
}
if (!flag)
break;
}
// 刪除子目錄
else if (files[i].isDirectory()) {
flag = 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;
}
}
}
java文件操作工具類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.