Java如何实现文件夹复制

   2024-10-22 2020
核心提示:在Java中,可以使用Files类的copy方法来实现文件夹的复制。以下是一个简单的示例:import java.io.IOException;import java.nio.

在Java中,可以使用Files类的copy方法来实现文件夹的复制。以下是一个简单的示例:

import java.io.IOException;import java.nio.file.FileVisitOption;import java.nio.file.FileVisitResult;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.SimpleFileVisitor;import java.nio.file.StandardCopyOption;import java.nio.file.attribute.BasicFileAttributes;import java.util.EnumSet;public class FolderCopyExample {    public static void main(String[] args) {        Path source = Paths.get("sourceFolder");        Path target = Paths.get("targetFolder");        try {            Files.walkFileTree(source, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE,                    new SimpleFileVisitor<Path>() {                        @Override                        public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {                            Path targetDir = target.resolve(source.relativize(dir));                            if (!Files.exists(targetDir)) {                                Files.createDirectory(targetDir);                            }                            return FileVisitResult.CONTINUE;                        }                        @Override                        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {                            Files.copy(file, target.resolve(source.relativize(file)), StandardCopyOption.REPLACE_EXISTING);                            return FileVisitResult.CONTINUE;                        }                    });        } catch (IOException e) {            e.printStackTrace();        }    }}

在这个示例中,我们首先指定源文件夹和目标文件夹的路径,然后使用Files.walkFileTree方法遍历源文件夹中的所有文件和子文件夹。在遍历过程中,我们使用SimpleFileVisitor的preVisitDirectory方法在目标文件夹中创建对应的子文件夹,然后使用visitFile方法将文件复制到目标文件夹中。最后,我们使用StandardCopyOption.REPLACE_EXISTING选项来指定如果目标文件已经存在,就替换它。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号