- //将C盘指定的一个文件夹(包含文件夹内的所有文件夹和所有文件,多层嵌套)复制到D盘中。
- public class HJ1
- {
- public static void main(String[] args) throws Exception
- {
- String str1= "D:\\QQ2012Beta2";//开始文件路径
- String str2= "E:\\QQ2012Beta2";//目的文件路径
- Ergodic(str1,str2);
- }
- private static void Ergodic(String str,String str11) throws Exception
- {
- File f1 = new File(str);//接受字符串,转换。
- File f11 = new File(str11);
- if(f1.isDirectory())//判断是否是文件夹
- { f11.mkdir(); //创建文件夹
- String [] str1 = f1.list();//获取当前文件夹内所有文件列表
- for(String str2 : str1)
- {
- File f2 = new File(str+"\\"+str2);
- Ergodic(f2.toString(),str11+"\\"+str2); //递归
-
- }
- }else
- {
- Duplicate(str,str11);//调用赋值方法,复制非文件夹的文佳
- }
- }
- private static void Duplicate(String str1,String str2) throws Exception
- {
- BufferedInputStream buis = new BufferedInputStream(new FileInputStream(str1));
- //定义要复制文件源的路径和流。
- BufferedOutputStream buos =new BufferedOutputStream(new FileOutputStream(str2));
- //定义接受文件的路径和流。
- byte[] buf = new byte[1024*1024];//定义接受的字节数组。
- int len=0;
- while((len=buis.read(buf))!=-1)//读取文件数据
- {
- buos.write(buf,0,len);//写入
- }
- buis.close();//关闭流
- buos.close();
- }
- }
复制代码 |