/** |
* 移动单个文件 |
* |
* @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.delete(destFileName)) { |
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 true ; |
} |
} |