欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

复制文件夹

程序员文章站 2024-03-09 10:48:29
...

键盘录入一个文件夹路径,作为源文件夹;
键盘录入一个文件夹路径,作为目标文件夹;
将源文件夹拷贝到目标文件夹中.

public static void main(String[] args) throws IOException {
		//录入源文件夹路径
		File file1=getFile();
		//录入目标文件夹路径
		File file2=new File(getFile(), "/"+file1.getName());
		//创建目标文件夹
		file2.mkdirs();
		//复制文件夹
		copyFile(file1,file2);
	}

    private static void copyFile(File file1, File file2) throws IOException{
	        //获取文件夹内容
    	    File[] arr=file1.listFiles();
    	    //遍历数组
    	    for (File fi : arr) {
    	    	//判断是否为文件
				if(fi.isFile()){
					//创建输入流
					FileInputStream fis=new FileInputStream(fi);
					//创建输数流
					FileOutputStream fos=new FileOutputStream(file2+"/"+fi.getName());
					//创建一个数组
					byte[] by=new byte[1024];
					//读取的字节
					int len;
					//复制文件
					while((len=fis.read(by))!=-1){
						fos.write(by, 0, len);
					}
					//关闭流对象
					fis.close();
					fos.close();
				}else{
					File file3=new File(file2+"/"+fi.getName());
					file3.mkdir();
					copyFile(fi, file3);
				}
			}
    	    
    }
    //获取录入的路径
    public static File getFile(){
  	  Scanner sc=new Scanner(System.in);
  	  while(true){
  		  System.out.println("请输入文件夹路径");
  		  File file=new File(sc.nextLine());
  		  if(file.isDirectory()){
  			  return file;
  		  }else{
  			  file.mkdirs();
  			  return file;
  		  }
  	  }
    }