zoukankan      html  css  js  c++  java
  • 基于NIO2的遍历文件夹简单复制

        public Class CopyAndWrite {
    
            public static final String SOURCES = "D:\sources";
            public static final String TARGET = "D:\target";
    
            public static void main (String[]args) throws IOException {
    
                Path startingDir = Paths.get(SOURCES);
        
                Files.walkFileTree(startingDir, new FindJavaVisitor());
            }
    
            private static class FindJavaVisitor extends SimpleFileVisitor<Path> {
    
                @Override
                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                    if (!StringUtils.equals(dir.toString(), SOURCES)) {
                        Path targetPath = Paths.get(TARGET + dir.toString().substring(SOURCES.length()));
                        if (!Files.exists(targetPath)) {
                            Files.createDirectory(targetPath);
                        }
                    }
                    return FileVisitResult.CONTINUE;
                }
    
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    Path targetPath = Paths.get(TARGET + file.toString().substring(SOURCES.length()));
                    copyFile(targetPath, Files.readAllBytes(file));
    
                    return FileVisitResult.CONTINUE;
                }
            }
    
            private static void copyFile (Path path,byte[] bytes){
                // write file
                try {
                    Files.write(path, bytes);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
  • 相关阅读:
    Golang判断文件/文件夹是否存在
    Golang将一个文件中的内容写入到另一个文件里
    Golang打开已存在的文件并覆盖其内容
    Golang打开文件并写入
    【正则】day01
    【正则】day02
    【day09】PHP
    【day08】PHP
    转换函数
    变量作用域
  • 原文地址:https://www.cnblogs.com/Deters/p/11595624.html
Copyright © 2011-2022 走看看