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); } }
相关文章推荐
- java中数组(Array)与列表(List)相互转换的方法
- myeclipse10破解 for ubuntu
- struts中的常用配置
- Java并发编程:线程池的使用
- org.springframework.dao.CannotAcquireLockException解决
- [leetcode]Intersection of Two Linked Lists[java]找出两个链表的公共节点
- spring手动回滚事务
- JAVA远程方法-RMI
- Java中String类对象的初始化
- springmvc+webSocket 整合
- JDK源码阅读之AbstractMap类
- Android——eclipse共享library以及导出jar包
- 用来理解 Java 编程语言的 8 个图表
- Java虚拟机学习 - 体系结构 内存模型
- java系统学习(十) --------线程
- java系统学习(十) --------线程
- Warning: Maximum number of format records exceeded. Using default format.
- java 产生随机数的方法
- java 线程的基本用法
- 采用eclipse进行fortran程序开发--Photran