您的位置:首页 > 编程语言 > Java开发

jdk7 遍历文件树

2015-09-21 17:55 393 查看
package com.nerve.core.test.getfilelist;

import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.io.IOException;
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;

public class RecursiveFileListDemo {

public static void main(String[] args) throws IOException {

final Path startPath = Paths.get("G:\\测试数据\\hehe");
final List<String> fileList = new ArrayList<String>();

long start = System.currentTimeMillis();

Files.walkFileTree(startPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult preVisitDirectory(Path dir,
BasicFileAttributes attrs) {
//System.out.println(">>>>Dir : " + dir);

String islayers = "false";
if (islayers != null && islayers.equals("false")&& !startPath.toAbsolutePath().equals(dir.toAbsolutePath()))
{
return FileVisitResult.SKIP_SUBTREE;
}else{
return FileVisitResult.CONTINUE;
}
}

@Override
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) {
System.out.println("File : " + file);
fileList.add(file.toFile().getAbsolutePath());
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc)
throws IOException {
//G:\System Volume Information
//System.out.println(file.toFile().getAbsolutePath());

return FileVisitResult.CONTINUE;
}
});
// System.out.println(fileList);
System.out.println(fileList.size());
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}


package com.nerve.core.test.getfilelist;

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;

public class FileVisitorTest extends SimpleFileVisitor<Path> {

private void find(Path path){
// System.out.printf("访问-%s:%s%n",(Files.isDirectory(path)?"目录":"文件"),path.toAbsolutePath());
}
@Override
public FileVisitResult visitFile(Path file,BasicFileAttributes attrs){
find(file);
return FileVisitResult.CONTINUE;
}

@Override
public FileVisitResult preVisitDirectory(Path dir,BasicFileAttributes attrs){
find(dir);
return FileVisitResult.CONTINUE;
}

@Override
public FileVisitResult visitFileFailed(Path file,IOException e){
System.out.println(e);
return FileVisitResult.CONTINUE;
}

public static void main(String[] args) throws IOException{
if(args.length==0)
{
args=new String[]{"G:\\测试数据"};
}
if(args.length<1){
System.out.println("请输入一个文件路径作为参数");
System.exit(-1);
}
long start=System.currentTimeMillis();

Files.walkFileTree(Paths.get(args[0]), new FileVisitorTest());

long end=System.currentTimeMillis();
System.out.println(end-start);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: