Basic attributes
Start at the root; list all files; watch out for links
import java.nio.filesystems.*;
import java.io.*;
public class FileSystemLister {
public static void main(String[] args) throws IOException {
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
FileReference ref = roots[i].toFileReference();
Directory root = ref.openDirectory();
list(root);
}
}
public static void list(Directory dir) {
try {
for (Directory.Entry entry : dir) {
FileReference ref = entry.asFileReference();
System.out.println(entry.getName());
// Now let's see what it is:
BasicFileAttributes atts = ref.readBasicFileAttributes();
BasicFileType = atts.getFileType();
if (type == BasicFileType.LINK) continue;
else if (type == BasicFileType.DIRECTORY) {
Directory child = ref.openDirectory();
list(child);
}
}
}
finally {
dir.close();
}
}
}