src/share/classes/org/openjdk/jigsaw/Files.java

Print this page

        

*** 24,37 **** --- 24,44 ---- */ package org.openjdk.jigsaw; import java.io.*; + import java.nio.file.attribute.BasicFileAttributes; + import java.nio.file.FileVisitor; + import java.nio.file.FileVisitResult; + import java.nio.file.Path; + import java.util.ArrayList; + import java.util.List; import java.util.jar.*; import java.util.zip.*; import static java.nio.file.StandardCopyOption.COPY_ATTRIBUTES; import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; + import static java.lang.String.format; public final class Files { private Files() { }
*** 107,116 **** --- 114,172 ---- } } delete(dst); } + static List<IOException> deleteAllUnchecked(Path dir) { + final List<IOException> excs = new ArrayList<>(); + try { + java.nio.file.Files.walkFileTree(dir, new FileVisitor<Path>() { + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) { + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + try { + java.nio.file.Files.delete(file); + } catch (IOException x) { + excs.add(new IOException(format("Unable to delete %s%n", file))); + } + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) { + try { + java.nio.file.Files.delete(dir); + } catch (IOException x) { + excs.add(new IOException(format("Unable to delete %s%n", dir))); + } + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult visitFileFailed(Path file, IOException exc) { + excs.add(new IOException(format("Unable to visit %s%n", file))); + return FileVisitResult.CONTINUE; + } + }); + } catch (IOException x) { + excs.add(x); + } + return excs; + } + + static IOException deleteUnchecked(Path file) + { + try { + java.nio.file.Files.delete(file); + } catch (IOException exc) { + return new IOException(format("Unable to delete %s\n", file)); + } + return null; + } + + private static void copy(File src, File dst) throws IOException { java.nio.file.Files.copy(src.toPath(), dst.toPath(), COPY_ATTRIBUTES, REPLACE_EXISTING);