I am trying to get the names of all of the text files in a directory. If the directory has subdirectories then I also want to get any text files in those as well. I am not s
using the java.nio.file capabilites of java 7. I implemented similiar func. and added some test.
Benchmarks when searching for .txt on my PC
"c:/" "c:/windows"
file.io 36272ms 14082ms
file.nio 7167ms 2987ms
Read more in the javadoc, it's quite powerfull API
java.nio.file.filevisitor javadoc
public static void main(String[] args) {
long starttime = System.currentTimeMillis();
try {
Path startPath = Paths.get("c:/");
Files.walkFileTree(startPath, new SimpleFileVisitor() {
@Override
public FileVisitResult preVisitDirectory(Path dir,
BasicFileAttributes attrs) {
System.out.println("Dir: " + dir.toString());
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.toString().endsWith(".txt")){
System.out.println(file.toString());
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException e) {
return FileVisitResult.CONTINUE;
}
});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long completetime = System.currentTimeMillis() - starttime;
System.out.println("totaltime=" + completetime);
}