JAvaファイル操作ツールクラス
7785 ワード
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;
}
}
}