OnJava8-Examples/files/Directories.java

95 lines
2.5 KiB
Java
Raw Permalink Normal View History

2015-12-06 11:45:16 -08:00
// files/Directories.java
// (c)2021 MindView LLC: see Copyright.txt
2015-12-06 11:45:16 -08:00
// We make no guarantees that this code is fit for any purpose.
2016-09-23 13:23:35 -06:00
// Visit http://OnJava8.com for more book information.
2015-12-06 11:45:16 -08:00
import java.util.*;
import java.nio.file.*;
import onjava.RmDir;
public class Directories {
static Path test = Paths.get("test");
static String sep =
FileSystems.getDefault().getSeparator();
static List<String> parts =
2015-12-15 11:47:04 -08:00
Arrays.asList("foo", "bar", "baz", "bag");
2015-12-06 11:45:16 -08:00
static Path makeVariant() {
Collections.rotate(parts, 1);
return Paths.get("test", String.join(sep, parts));
}
static void refreshTestDir() throws Exception {
if(Files.exists(test))
RmDir.rmdir(test);
if(!Files.exists(test))
Files.createDirectory(test);
}
2016-01-25 18:05:55 -08:00
public static void
main(String[] args) throws Exception {
2015-12-06 11:45:16 -08:00
refreshTestDir();
Files.createFile(test.resolve("Hello.txt"));
Path variant = makeVariant();
// Throws exception (too many levels):
try {
Files.createDirectory(variant);
} catch(Exception e) {
System.out.println("Nope, that doesn't work.");
}
populateTestDir();
Path tempdir =
2015-12-15 11:47:04 -08:00
Files.createTempDirectory(test, "DIR_");
Files.createTempFile(tempdir, "pre", ".non");
2015-12-06 11:45:16 -08:00
Files.newDirectoryStream(test)
.forEach(System.out::println);
System.out.println("*********");
Files.walk(test).forEach(System.out::println);
}
static void populateTestDir() throws Exception {
for(int i = 0; i < parts.size(); i++) {
Path variant = makeVariant();
if(!Files.exists(variant)) {
Files.createDirectories(variant);
Files.copy(Paths.get("Directories.java"),
variant.resolve("File.txt"));
Files.createTempFile(variant, null, null);
}
}
}
}
/* Output:
Nope, that doesn't work.
2015-12-15 11:47:04 -08:00
test\bag
2015-12-06 11:45:16 -08:00
test\bar
test\baz
test\DIR_8683707748599240459
2015-12-06 11:45:16 -08:00
test\foo
test\Hello.txt
*********
test
2015-12-15 11:47:04 -08:00
test\bag
test\bag\foo
test\bag\foo\bar
test\bag\foo\bar\baz
test\bag\foo\bar\baz\4316127347949967230.tmp
2015-12-15 11:47:04 -08:00
test\bag\foo\bar\baz\File.txt
2015-12-06 11:45:16 -08:00
test\bar
test\bar\baz
2015-12-15 11:47:04 -08:00
test\bar\baz\bag
test\bar\baz\bag\foo
test\bar\baz\bag\foo\1223263495976065729.tmp
2015-12-15 11:47:04 -08:00
test\bar\baz\bag\foo\File.txt
2015-12-06 11:45:16 -08:00
test\baz
2015-12-15 11:47:04 -08:00
test\baz\bag
test\baz\bag\foo
test\baz\bag\foo\bar
test\baz\bag\foo\bar\6666183168609095028.tmp
2015-12-15 11:47:04 -08:00
test\baz\bag\foo\bar\File.txt
test\DIR_8683707748599240459
test\DIR_8683707748599240459\pre6366626804787365549.non
2015-12-06 11:45:16 -08:00
test\foo
test\foo\bar
test\foo\bar\baz
2015-12-15 11:47:04 -08:00
test\foo\bar\baz\bag
test\foo\bar\baz\bag\4712324129011589115.tmp
2015-12-15 11:47:04 -08:00
test\foo\bar\baz\bag\File.txt
2015-12-06 11:45:16 -08:00
test\Hello.txt
*/