IO流復制文件夾(包含子文件夾中文件)的問題
//在D盤下創建一個目錄d1,在目錄d1下創建創建若干個文本文件,并在每一個文本文件中添加若干內容。利用字節流
//將該目錄下的所有文件復制到D盤下的d2目錄下。
public?class?Test10?{
????public?static?void?main(String[]?args)?throws?Exception?{
????????//創建源文件夾對象
????????File?dir?=?new?File("D:\\圖片\\新建文件夾");
????????ArrayList<File>?list?=?new?ArrayList<>();
????????ArrayList<File>?filesList?=?BLfile(dir,?list);
????????//創建目標文件夾對象
????????File?dir2?=?new?File("D:\\圖片\\新建文件夾2");
????????copyFile(list,?dir2);
????}
????private?static?void?copyFile(ArrayList<File>?list,?File?dir2)?throws?Exception?{
????????//遍歷集合拿到每個源文件對象
????????for?(File?f?:?list)?{
????????????//創建讀取對象
????????????FileInputStream?fis?=?new?FileInputStream(f);
????????????//創建文件輸入對象
????????????FileOutputStream?fos?=?new?FileOutputStream(new?File(dir2,f.getName()));
????????????int?len?=?-1;
????????????byte[]?b?=?new?byte[1024];
????????????while?((len?=?fis.read(b))?!=?-1)?{
????????????????fos.write(b,?0,?len);
????????????}
????????}
????}
????//拿到每個文件夾中文件對象的方法
????public?static?ArrayList<File>?BLfile(File?dir,?ArrayList<File>?list)?{
????????if?(dir.isFile())?{
????????????list.add(dir.getAbsoluteFile());
????????????return?list;
????????}
????????File[]?f1?=?dir.listFiles();
????????for?(File?f?:?f1)?{
????????????if?(f.isFile())?{
????????????????list.add(f.getAbsoluteFile());
????????????}?else?{
????????????????BLfile(f,?list);
????????????}
????????}
????????return?list;
????}
}請問哪里出問題了,本人自己看不出,望解答
2018-07-04