File中的renameTo方法案例
将文件重命名(不建议使用,可能存在比较的多问题)
以下案例中a.txt可以是文件(a.txt文档)也可以是文件夹a.txt
1.首先要注意的是所要操作的文件是存在的,文件不存在肯定会返回false
2.因为renameTo操作大部分都是剪切,当执行成功一次后文件会被剪切走,后续的测试如果没有把文件移回来,就会返回false
案例一:根目录相同,最后的文件或者文件夹不同(重命名)
只将a.txt文件(或文件夹)修改为b.txt,而且file1的名称还是D:\0XYZ\a.txt
File file1 = new File("D:\\0XYZ\\a.txt");
File file2 = new File("D:\\0XYZ\\b.txt");
file1.renameTo(file2); // 返回true
System.out.println(file1);
>>>D:\0XYZ\a.txt
案例二:根目录不同,后面的文件或者文件名相同
如果E:盘下没有0XYZ文件夹,则没有任何操作结果,慎用!
如果E:盘下有0XYZ文件夹,则会将最后的文件或者文件夹a.txt剪切过去!
File file1 = new File("D:\\0XYZ\\a.txt");
File file2 = new File("E:\\0XYZ\\a.txt");
System.out.println(file1.renameTo(file2));
System.out.println(file1);
>>>false //E盘下没有0XYZ文件夹
D:\0XYZ\a.txt
>>>true //E盘下存在0XYZ文件夹
D:\0XYZ\a.txt
案例三:
根目录不同,路径也有区别,可以将文件剪切过去
File file1 = new File("D:\\0XYZ\\a.txt");
File file2 = new File("E:\\a.txt");
System.out.println(file1.renameTo(file2));
System.out.println(file1);
>>>true
D:\0XYZ\a.txt
案例四:
根目录不同,且要操作的文件夹下存在文件
不会对文件进行操作
File file1 = new File("D:\\0XYZ");
File file2 = new File("E:\\1XYZ"); //不管E盘下1XYZ文件夹是否存在都一样
System.out.println(file1.renameTo(file2));
System.out.println(file1);
>>>false
D:\0XYZ
案例五:
根目录相同,且要操作的文件夹下存在文件
File file1 = new File("D:\\0XYZ");
File file2 = new File("E:\\0XYZ");
System.out.println(file1.renameTo(file2));
System.out.println(file1);
>>>false
D:\0XYZ
最后说明:renameTo方法只是对源文件路径最后的文件或者文件夹进行操作,不会对整个文件路径进行操作
版权声明:本文为Guesshat原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。