java.io.file修改名称_java工具类——File文件删除、复制、移动、重命名

importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;/*** 文件工具类

*

*@authoronly-dream

**/

public classFileUtil {/*** 删除文件,可以是文件或文件夹

*

*@paramfileName

* 要删除的文件名

*@return删除成功返回true,否则返回false

*@authoronly-dream*/

public static booleandelete(String fileName) {

File file= newFile(fileName);if (!file.exists()) {

System.out.println("删除文件失败:" + fileName + "不存在!");return false;

}else{if(file.isFile())returndeleteFile(fileName);else

returndeleteDirectory(fileName);

}

}/*** 删除单个文件

*

*@paramfileName

* 要删除的文件的文件名

*@return单个文件删除成功返回true,否则返回false

*@authoronly-dream*/

public static booleandeleteFile(String fileName) {

File file= newFile(fileName);//如果文件路径所对应的文件存在,并且是一个文件,则直接删除

if (file.exists() &&file.isFile()) {if(file.delete()) {

System.out.println("删除单个文件" + fileName + "成功!");return true;

}else{

System.out.println("删除单个文件" + fileName + "失败!");return false;

}

}else{

System.out.println("删除单个文件失败:" + fileName + "不存在!");return false;

}

}/*** 删除目录及目录下的文件

*

*@paramdir

* 要删除的目录的文件路径

*@return目录删除成功返回true,否则返回false

*@authoronly-dream*/

public static booleandeleteDirectory(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 + "不存在!");return false;

}boolean flag = true;//删除文件夹中的所有文件包括子目录

File[] files =dirFile.listFiles();for (int i = 0; i < files.length; i++) {//删除子文件

if(files[i].isFile()) {

flag=FileUtil.deleteFile(files[i].getAbsolutePath());if (!flag)break;

}//删除子目录

else if(files[i].isDirectory()) {

flag=FileUtil.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;

}

}/*** 文件名重命名

*

*@parampath

* 文件的上一层目录路径

*@paramoldFileName

* 要修改的文件旧路径

*@paramnewFileName

* 新的文件路径

*@return成功返回true,失败返回false

*@authoronly-dream*/

public static booleanrenameFile(String path, String oldFileName, String newFileName) {if (!oldFileName.equals(newFileName)) {//新的文件名和以前文件名不同时,才有必要进行重命名

File oldfile = new File(path + "/" +oldFileName);

File newfile= new File(path + "/" +newFileName);if (newfile.exists()) {//若在该目录下已经有一个文件和新文件名相同,则不允许重命名

System.out.println(newFileName + "已经存在!");return false;

}else{

oldfile.renameTo(newfile);

System.out.println("文件修改成功");return true;

}

}

System.out.println("文件名称一致");return false;

}/*** 移动文件

*

*@paramfilename

* 文件名

*@paramoldpath

* 旧文件地址

*@paramnewpath

* 新文件地址

*@paramcover

* 存在同名文件true:覆盖;false:不覆盖

**/

public void changeDirectory(String filename, String oldpath, String newpath, booleancover) {if (!oldpath.equals(newpath)) {

File oldfile= new File(oldpath + "/" +filename);

File newfile= new File(newpath + "/" +filename);if (newfile.exists()) {//若在待转移目录下,已经存在待转移文件

if (cover) {//覆盖

oldfile.renameTo(newfile);

}else{

System.out.println("在新目录下已经存在:" +filename);

}

}else{

oldfile.renameTo(newfile);

}

}

}/*** 复制文件

*@paramsrc 文件的源路径

*@paramdest 文件的目标路径

*@throwsIOException

支持中文处理,并且可以复制多种类型,比如txt,xml,jpg,doc等多种格式*/

public void copyFile(String src, String dest) throwsIOException {

FileInputStream in= newFileInputStream(src);

File file= newFile(dest);if (!file.exists()){//如果没有创建

file.createNewFile();

}else{}

FileOutputStream out= newFileOutputStream(file);intc;byte buffer[] = new byte[1024];while ((c = in.read(buffer)) != -1) {for (int i = 0; i < c; i++){

out.write(buffer[i]);

}

}

in.close();

out.close();

}public static voidmain(String[] args) {// //删除单个文件//String file = "c:/test/test.txt";//FileUtil.deleteFile(file);//System.out.println();//删除一个目录

String dir = "D:/home/web/upload/upload/files";

FileUtil.deleteDirectory(dir);//System.out.println();// //删除文件//dir = "c:/test/test0";//FileUtil.delete(dir);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值