import java.io.File;
public class MoveFileUtil {
/**
*
* @param srcFileName
* @param destFileName
* @param overlay ,
* @return true, false
*/
public static boolean moveFile(String srcFileName, String destFileName, boolean overlay) {
File srcFile = new File(srcFileName);
//
if(!srcFile.exists()) {
System.out.println(" : " + srcFileName + " !");
return false;
} else if(!srcFile.isFile()) {
System.out.println(" :" + srcFileName + " !");
return false;
}
File destFile = new File(destFileName);
//
if(destFile.exists()) {
//
if(overlay) {
// ,
System.out.println(" , ......");
if(!DeleteFileUtil.deleteFile(destFile.getAbsolutePath())) {
System.out.println(" : " + destFileName + " !");
return false;
}
} else {
System.out.println(" : " + destFileName + " !");
return false;
}
} else {
if(!destFile.getParentFile().exists()) {
// ,
System.out.println(" , 。。。。");
if(!destFile.getParentFile().mkdirs()) {
System.out.println(" , !");
return false;
}
}
}
//
if(srcFile.renameTo(destFile)) {
System.out.println(" " + srcFileName + " " + destFileName + " !");
return true;
} else {
System.out.println(" " + srcFileName + " " + destFileName + " !");
return false;
}
}
/**
*
* @param srcDirName
* @param destDirName
* @param overlay ,
* @return true, false
*/
public static boolean moveDirectory(String srcDirName, String destDirName, boolean overlay) {
//
File srcDir = new File(srcDirName);
if(!srcDir.exists()) {
System.out.println(" : " + srcDirName + " !");
return false;
} else if(!srcDir.isDirectory()) {
System.out.println(" :" + srcDirName + " !");
return false;
}
// ,
if(!destDirName.endsWith(File.separator))
destDirName = destDirName + File.separator;
File destDir = new File(destDirName);
//
if(destDir.exists()) {
// ,
if(overlay) {
System.out.println(" , 。。。。");
if(!DeleteFileUtil.delete(destDir.getAbsolutePath())) {
System.out.println(" : " + destDirName + " !");
return false;
}
} else {
System.out.println(" : " + destDirName + " !");
return false;
}
}
//
System.out.println(" , 。。。。");
if(!destDir.mkdirs()) {
System.out.println(" : !");
return false;
}
boolean flag = true;
//
File[] files = srcDir.listFiles();
for(int i = 0; i < files.length; i++) {
//
if(files[i].isFile()) {
flag = moveFile(files[i].getAbsolutePath(), destDirName + files[i].getName(), overlay);
if(!flag)
break;
}
//
if(files[i].isDirectory()) {
flag = moveDirectory(files[i].getAbsolutePath(), destDirName + files[i].getName(), overlay);
if(!flag)
break;
}
}
if(!flag) {
System.out.println(" " + srcDirName + " " + destDirName + " !");
return false;
}
//
if(DeleteFileUtil.delete(srcDirName)) {
System.out.println(" " + srcDirName + " " + destDirName + " !");
return true;
} else {
System.out.println(" " + srcDirName + " " + destDirName + " !");
return false;
}
}
public static void main(String[] args) {
String srcDirName = "c:/test/test0";
String destDirName = "c:/aaa";
MoveFileUtil.moveDirectory(srcDirName, destDirName, false);
}
}