我的程序是这样的用io来实现一个文件夹的拷贝。
import java.io.*;  
     
     
    public class CopyFile {  
        public static void main(String[] args)  
        {  
            copyFile("D:\\ccc","D:\\乱七八糟");  
        }  
     
        public static void copyFile(String sourceFilePath , String targetFilePath)  
        {    
                
                File sourceFile = new File(sourceFilePath); 
                File[] sourceFiles = null;    
                if(sourceFile.isDirectory()){
                    targetFilePath +="\\"+sourceFile.getName();  //这段代码什么意思 怎么理解+=“\\”
                    File targetFile = new File(targetFilePath); 
                    targetFile.mkdirs();  
                    sourceFiles = sourceFile.listFiles();  
                }else if(sourceFile.isFile()){ 
                    sourceFiles = new File[]{sourceFile}; 
                }    
                  
                
                for(int i=0;i<sourceFiles.length;i++)
                {    
                   if(sourceFiles[i].isDirectory())  
                   {                   
                        String newSourceFilePath= sourceFilePath + "\\"+sourceFiles[i].getName();    
                    
                        copyFile(newSourceFilePath,targetFilePath);    
                    }  
                   else
                    {    
                        try {    
                            FileInputStream fis = new FileInputStream(sourceFiles[i]);    
                            BufferedInputStream bufi=new BufferedInputStream(fis);  
                              
                            FileOutputStream fos = new FileOutputStream(targetFilePath+"\\"+sourceFiles[i].getName());    
                            BufferedOutputStream bufo=new BufferedOutputStream(fos);  
                              
                            byte[] by=new byte[1024];  
                                
                            while(bufi.read(by)!=-1)  
                            {  
                                bufo.write(by,0,by.length);  
                            }                       
                            bufi.close();    
                            bufo.close();    
                        } catch (FileNotFoundException e) {    
                            e.printStackTrace();    
                        } catch (IOException e) {    
                            e.printStackTrace();    
                        }    
                    }    
                }    
            }    
    }    

解决方案 »

  1.   

    copyFile("D:\\ccc","D:\\乱七八糟");  以这样的字符串为例子说明if(sourceFile.isDirectory()){ //如果D:\\ccc是文件夹,那么在D:\\乱七八糟下创建ccc文件夹
        targetFilePath +="\\"+sourceFile.getName(); //所以这里先得到D:\\乱七八糟\\ccc字符串
        File targetFile = new File(targetFilePath); //再以这个字符串为参数生成一个File对象
        targetFile.mkdirs();  //然后创建文件夹
        sourceFiles = sourceFile.listFiles();  
      

  2.   

    int a = 0;
    a += 5; //相当于 a = a + 5;
    所以
    targetFilePath +="\\"+sourceFile.getName(); 
    相当于
    targetFilePath = targetFilePath + "\\"+sourceFile.getName(); 
      

  3.   

    lz is so lazy
    qybao is so nice