public static boolean deleteDirectory(String dir){
//如果dir不以文件分隔符结尾,自动添加文件分隔符
if(!dir.endsWith(File.separator)) {
dir = dir +File.separator;
}
File dirFile = newFile(dir);
//如果dir对应的文件不存在,或者不是一个目录,则退出
if (!dirFile.exists() ||!dirFile.isDirectory()) {
//System.out.println("删除目录失败"+dir+"目录不存在!");
returnfalse;
}
boolean flag = true;
// 删除文件夹下的所有文件(包括子目录)
File[] files =dirFile.listFiles();
for (int i = 0; i< files.length; i++) {
//删除子文件
if(files[i].isFile()) {
flag= deleteFile(files[i].getAbsolutePath());
if(!flag) {
break;
}
}
//删除子目录
else {
flag= deleteDirectory(files[i].getAbsolutePath());
if(!flag) {
break;
}
}
}
if (!flag) {
//System.out.println("删除目录失败");
returnfalse;
}
// 删除当前目录
if (dirFile.delete()) {
//System.out.println("删除目录"+dir+"成功!");
returntrue;
} else {
//System.out.println("删除目录"+dir+"失败!");
returnfalse;
}
}
public static void copyFile(String oldPath,String newPath) {
try {
int bytesum =0;
int byteread= 0;
File oldfile= new File(oldPath);
if(oldfile.exists()) { // 文件存在时
InputStreaminStream = new FileInputStream(oldPath); // 读入原文件
FileOutputStreamfs = new FileOutputStream(newPath);
byte[]buffer = new byte[1444];
intlength;
while((byteread = inStream.read(buffer)) != -1) {
bytesum+= byteread; // 字节数 文件大小
fs.write(buffer,0, byteread);
}
inStream.close();
}
} catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
public static void fileCopy(String sFile,String oFile) throws IOException{
File file = newFile(sFile);
if (!file.exists()) {
System.out.println(sFile+ " not have");
return;
}
File fileb = newFile(oFile);
if (file.isFile()) {
if(fileb.exists()){
}else{
//新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(file);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(fileb);
BufferedOutputStream outBuff=newBufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
} else if (file.isDirectory()){
if(!fileb.exists()) {
fileb.mkdir();
}
String[]fileList;
fileList =file.list();
for (int i =0; i < fileList.length; i++) {
fileCopy(sFile+ "/" + fileList[i], oFile + "/" + fileList[i]);
}
}
}