package com.lianxi;
import java.io.File;
public class Dome5 {
//保存要复制粘贴路径
static File fileNew;
public static void main(String[] args) {
// 剪切就是先复制粘贴再删除(后面我就用转移来代替剪切吧)
//第一个参数是要被剪切的文件夹和文件
//第二个参数是要被粘贴的文件夹
fuZhi(new File("C:\\Users\\Administrator\\Desktop\\违法"),new File("C:\\Users\\Administrator\\Desktop\\宇宙"));
//这是删除要被剪切的文件夹
shanChu(new File("C:\\Users\\Administrator\\Desktop\\违法"));
}
//file1是要被剪切的文件夹和文件
//file2是要被粘贴的文件夹和文件
public static void fuZhi(File file1,File file2){
//这是保存要复制粘贴的文件夹和文件的路径
fileNew=new File("C:\\Users\\Administrator\\Desktop\\宇宙");
File[] file=file1.listFiles();
for(File is:file){
//如果是文件夹,就在file2的位置创建一个文件夹
if(is.isDirectory()){
fileNew=new File(file2+"\\"+is.getName());
fileNew.mkdirs();
fuZhi(is,fileNew);
}else if(is.isFile()){
//文件可以直接的重命名路径,直接移动到指定的路径去
//文件夹不可用
fileNew=new File(file2+"\\"+is.getName());
is.renameTo(fileNew);
}
}
}
//删除文件夹,因为文件都被转移了,所以只剩文件夹了
//1。先拿到文件夹路径
public static void shanChu(File file){
//2.把此文件夹的子目录转换为File类的数组路径目录
File[] file1=file.listFiles();
//5.我想这的条件是当没有此路径的时候就不进入吧(我不太确定)
for(File is:file1){
//3.这是显示是什么目录
System.out.println("---"+is.getName());
//4.递归,把这个目录的路径再传回来看看里面有没有子目录
//3,4反复直到再也没有子目录了
shanChu(is);
//10.显示is的现在的目录文件夹名
System.out.println("???"+is.getName());
//11.因为数组中还有一个路径 ,还在for循环中 ,就算这个数组的路径没了。
//还是回到4步骤中,因为还是它掉的这个方法, 再次的5~11的步骤 , 而上次的路径数组和这次的路径数组是不一样的
//直到父目录中的文件夹都删除空了,才回到第一次调用此方法的方法中
}
//6.显示没有子目录的目录的文件夹名
System.out.println("!!!!!!"+file.getName());
//7.删除目录
file.delete();
//8.显示要删除的目录
System.out.println(file.getName());
//9.回到4步骤中,因为是它调用的方法
}
}
//我也不知道删除的方法的注释是否是这样的
因为删除的那个方法的递归实在是太绕了,
761

被折叠的 条评论
为什么被折叠?



