需求分析
- 要复制目录下的所有文件,需要使用递归,将所有文件&目录路径保存下来
// 递归查找目录&文件 public static void getAllFiles(File directory, ArrayList<File> files, ArrayList<File> dirs) { if (directory.isDirectory()) { dirs.add(directory); for (var f : directory.listFiles()) { getAllFiles(f, files, dirs); } } else { files.add(directory); } }
- 根据缓存的目录信息,创建新的目录结构
// 创建目录结构 for (var d : dirs) { String to = d.getAbsolutePath().replace(fromDir, toDir); new File(to).mkdirs(); }
- 根据缓存的文件路径,将原路径下的文件复制到新路径下
// 复制文件 for (var f : files) { String to = f.getAbsolutePath