import java.io.*; /** * @author aachen0 * @date 2018/4/9 16:45 * IDE:IntelliJ IDEA */ public class DirCopy { public static void main(String[] args) { File fileSrc = new File("D:\\a");// 要拷贝的源文件夹C File fileDest = new File("C:\\b");// 要拷贝到的目标文件夹 copy(fileSrc, fileDest); } /** * @param fileSrc 复制源目录 * @param fileDest 复制目标目录 */ public static void copy(File fileSrc, File fileDest) { fileDest.mkdir();// 先创建目标文件目录 File[] files = fileSrc.listFiles();// 定义一个文件对象数组用来存储当前源目录下的所有对象 for (int i = 0; i < files.length; i++) {// 遍历源目录下的文件对象 if (files[i].isDirectory()) {// 如果文件对象是一个目录,则递归调用copy方法 copy(files[i], new File(fileDest.getAbsolutePath() + "\\" + files[i].getName())); } else { File toFile = new File(fileDest.getAbsolutePath() + "\\" + files[i].getName()); // files[i].renameTo(toFile);// 如果是一个文件则调用rename方法实现拷贝 myCopyFile(files[i], toFile);// 调用自写的文件拷贝方法 } } } private static void myCopyFile(File file, File toFile) { FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { fileInputStream = new FileInputStream(file); fileOutputStream = new FileOutputStream(toFile); byte[] buffer = new byte[1024]; int lenght = 0; try { while (-1 != (lenght = fileInputStream.read(buffer))) { fileOutputStream.write(buffer, 0, lenght); } } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (null != fileOutputStream) { try { fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if (null != fileInputStream) { try { fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
简单的Java文件操作实现目录拷贝
最新推荐文章于 2022-08-07 15:29:08 发布