package com.sheng.filefinder;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.List;
/**
* 如果使用的是JDK 1.7,那么Files.walkFileTree会是一个很好的选择。这个类位于java.nio.file包下,这个包是JDK 1.7中新增的
* @author Administrator
*
*/
public class FileFinder2 {
public static void main(String[] args) throws IOException {
Path startingDir = Paths.get("D:\\ksDownloads");
FindFileVisitor findJavaVisitor = new FindFileVisitor(".jar");
Files.walkFileTree(startingDir, findJavaVisitor);
for (String name : findJavaVisitor.getFilenameList()) {
System.out.println(name);
}
}
}
class FindFileVisitor extends SimpleFileVisitor {
private List filenameList = new ArrayList();
private String fileSuffix = null;
public FindFileVisitor(String fileSuffix) {
this.fileSuffix = fileSuffix;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.toString().endsWith(fileSuffix)) {
filenameList.add(file.toString());
}
return FileVisitResult.CONTINUE;
}
public List getFilenameList() {
return filenameList;
}
public void setFilenameList(List filenameList) {
this.filenameList = filenameList;
}
}