in src/main/java/org/apache/netbeans/nbpackage/FileUtils.java [141:182]
public static void moveFiles(Path src, Path dst) throws IOException {
Files.walkFileTree(src, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
throws IOException {
if (dir.equals(src)) {
return CONTINUE;
}
Path targetDir = dst.resolve(src.relativize(dir));
try {
Files.copy(dir, targetDir);
ensureWritable(targetDir);
} catch (FileAlreadyExistsException ex) {
if (!Files.isDirectory(targetDir)) {
throw ex;
}
}
return CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException {
Path targetFile = dst.resolve(src.relativize(file));
Files.move(file, targetFile);
ensureWritable(targetFile);
return CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
if (dir.equals(src)) {
return CONTINUE;
}
Files.delete(dir);
return CONTINUE;
}
});
}