如何将文件夹及其所有子文件夹和文件复制到另一个文件夹
如何将文件夹及其所有子文件夹和文件复制到另一个文件夹中?
Apache Commons IO可以为您提供帮助。 看看FileUtils 。
选择你喜欢的:
- 来自Apache Commons IO的FileUtils( 最简单,最安全的方式 )
FileUtils示例:
File srcDir = new File("C:/Demo/source"); File destDir = new File("C:/Demo/target"); FileUtils.copyDirectory(srcDir, destDir);
- 手动, Java 7之前的示例 (CHANGE:finally块中的关闭流)
- 手动,Java> = 7
Java 7中具有AutoCloseablefunction的示例:
public void copy(File sourceLocation, File targetLocation) throws IOException { if (sourceLocation.isDirectory()) { copyDirectory(sourceLocation, targetLocation); } else { copyFile(sourceLocation, targetLocation); } } private void copyDirectory(File source, File target) throws IOException { if (!target.exists()) { target.mkdir(); } for (String f : source.list()) { copy(new File(source, f), new File(target, f)); } } private void copyFile(File source, File target) throws IOException { try ( InputStream in = new FileInputStream(source); OutputStream out = new FileOutputStream(target) ) { byte[] buf = new byte[1024]; int length; while ((length = in.read(buf)) > 0) { out.write(buf, 0, length); } } }
看一下java.io.File的一堆函数。
您将遍历现有结构和mkdir,保存等以实现深层复制。
JAVA NIO将帮助您解决问题。 请查看此http://tutorials.jenkov.com/java-nio/files.html#overwriting-existing-files 。