复制带内容的文件夹

 

  
  
  
  
  1. import java.io.*;  
  2.  
  3.  
  4. public class CopyFile {  
  5.     public static void main(String[] args)  
  6.     {  
  7.         copyFile("D:\\ccc","D:\\乱七八糟");  
  8.     }  
  9.  
  10.     public static void copyFile(String sourceFilePath , String targetFilePath)  
  11.     {    
  12.             //获取路径信息,如果是文件夹,则创建文件夹,如果是文件则记录下文件的路径。  
  13.             File sourceFile = new File(sourceFilePath);  //源文件路径  
  14.             File[] sourceFiles = null;    
  15.             if(sourceFile.isDirectory()){  //判断源文件是否为文件夹  
  16.                 targetFilePath +="\\"+sourceFile.getName();  //如果是文件夹,则在目标区域创建该文件夹  
  17.                 File targetFile = new File(targetFilePath); //指定目标文件夹的路径  
  18.                 targetFile.mkdirs();  //创建文件夹  
  19.                 sourceFiles = sourceFile.listFiles();  //列出文件夹中的文件,并将文件名称存入文件数组  
  20.             }else if(sourceFile.isFile()){  //判断是否为文件  
  21.                 sourceFiles = new File[]{sourceFile};  //如果输入的是文件,则将文件的路径存入文件数组中  
  22.             }    
  23.               
  24.             //循环遍历,如果是文件,则复制文件,如果是文件夹,则递归操作  
  25.             for(int i=0;i<sourceFiles.length;i++)//遍历文件数组  
  26.             {    
  27.                if(sourceFiles[i].isDirectory())  
  28.                {                   
  29.                     String newSourceFilePath= sourceFilePath + "\\"+sourceFiles[i].getName();    
  30.                     //文件夹,递归操作  
  31.                     copyFile(newSourceFilePath,targetFilePath);    
  32.                 }  
  33.                else//文件:复制操作  
  34.                 {    
  35.                     try {    
  36.                         FileInputStream fis = new FileInputStream(sourceFiles[i]);    
  37.                         BufferedInputStream bufi=new BufferedInputStream(fis);  
  38.                           
  39.                         FileOutputStream fos = new FileOutputStream(targetFilePath+"\\"+sourceFiles[i].getName());    
  40.                         BufferedOutputStream bufo=new BufferedOutputStream(fos);  
  41.                           
  42.                         byte[] by=new byte[1024];  
  43.                             
  44.                         while(bufi.read(by)!=-1)  
  45.                         {  
  46.                             bufo.write(by,0,by.length);  
  47.                         }                       
  48.                         bufi.close();    
  49.                         bufo.close();    
  50.                     } catch (FileNotFoundException e) {    
  51.                         e.printStackTrace();    
  52.                     } catch (IOException e) {    
  53.                         e.printStackTrace();    
  54.                     }    
  55.                 }    
  56.             }    
  57.         }    
  58. }    

 

你可能感兴趣的:(职场,文件夹,休闲)