Java7遍历文件夹

原创 2015年07月10日 11:55:34

Java遍历文件夹的方法有多种,之前我写了一种遍历文件夹的方法点击,使用File类的方法递归遍历,这次是使用Java7提供的新的方法遍历文件夹。

File提供两个方法遍历文件夹,

上面两个方法都需要FileVisitor参数,FileVisitor代表一个文件访问器,walkFileTree()方法会自动遍历start路径下的所有文件和子目录,遍历文件和子目录都会触发FileVisitor中相应的方法。这四个方法在下面的代码中出现。

FileVisitor中的四个方法会返回一个FileVisitorResult,它代是一个枚举类,代表访问之后的行为。

FileVisitor定义了如下几种行为:

CONTINUE:代表访问之后的继续行为

SKIP_SIBLINGS:代表继续访问,但不访问该文件或目录的兄弟文件或目录

SKIP_SUBTREE:继续访问,但不访问该目录或文件的子目录

TERMINATE:终止访问

  1. import java.io.IOException;  
  2. import java.nio.ByteBuffer;  
  3. import java.nio.CharBuffer;  
  4. import java.nio.charset.Charset;  
  5. import java.nio.charset.CharsetDecoder;  
  6. import java.nio.charset.CharsetEncoder;  
  7. import java.nio.file.FileVisitResult;  
  8. import java.nio.file.FileVisitor;  
  9. import java.nio.file.Files;  
  10. import java.nio.file.Paths;  
  11. import java.nio.file.attribute.BasicFileAttributes;  
  12. public class Test {  
  13.     public static void main(String[] args) throws Exception  
  14.     {  
  15.           
  16.         Files.walkFileTree(Paths.get("D:","linux"), new FileVisitor(){  
  17.   
  18.             @Override  
  19.             public FileVisitResult preVisitDirectory(Object dir,  
  20.                     BasicFileAttributes attrs) throws IOException {  
  21.                 //访问文件夹之前调用  
  22.                 System.out.println(dir);  
  23.                 return FileVisitResult.CONTINUE;  
  24.             }  
  25.   
  26.             @Override  
  27.             public FileVisitResult visitFile(Object file,  
  28.                     BasicFileAttributes attrs) throws IOException {  
  29.                 // 访问文件调用  
  30.                 System.out.println(file);  
  31.                 return FileVisitResult.CONTINUE;  
  32.             }  
  33.   
  34.             @Override  
  35.             public FileVisitResult visitFileFailed(Object file, IOException exc)  
  36.                     throws IOException {  
  37.                 // 访问文件失败时调用  
  38.                 return FileVisitResult.CONTINUE;  
  39.             }  
  40.   
  41.             @Override  
  42.             public FileVisitResult postVisitDirectory(Object dir,  
  43.                     IOException exc) throws IOException {  
  44.                 // 访问文件夹之后调用  
  45.                 return FileVisitResult.CONTINUE;  
  46.             }  
  47.               
  48.         });  
  49.     }  
  50. }  


这样就可以遍历一个路径下的所有文件和文件夹。

版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。

Java7中遍历文件夹的新方法

这次是使用Java7提供的新的方法遍历文件夹。 static Path 上面方法需要FileVisitor参数,FileVisitor代表一个文件访问器,walkFileTree()方法会自动遍历s...
  • xinfei23
  • xinfei23
  • 2015年03月31日 15:08
  • 910

[疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)

1. 遍历文件和目录——FileVisitor:     1) 在旧版本中遍历文件系统只能通过递归的方法来实现,但是这种方法不仅消耗资源大而且效率低;     2) NIO.2的Files工具类提...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年05月16日 14:10
  • 6345

Java7遍历文件夹

Java遍历文件夹的方法有多种,之前我写了一种遍历文件夹的方法点击,使用File类的方法递归遍历,这次是使用Java7提供的新的方法遍历文件夹。 File提供两个方法遍历文件夹, ...
  • u013948187
  • u013948187
  • 2015年07月10日 11:55
  • 529

Java7遍历文件夹

Java遍历文件夹的方法有多种,之前我写了一种遍历文件夹的方法点击,使用File类的方法递归遍历,这次是使用Java7提供的新的方法遍历文件夹。 File提供两个方法遍历文件夹, 上面两个方法...
  • zhy_cheng
  • zhy_cheng
  • 2012年08月22日 20:03
  • 6064

JDK7之新的遍历目录API

jdk7之前,我们遍历目录,一般都是判断当前文件是普通文件和目录文件,从而递归的遍历其子目录,利用file 过滤,过滤出符合我们需要的文件。     这种都是需要我们显示的写递归程序的,不过JDK7...
  • doctor_who2004
  • doctor_who2004
  • 2015年08月30日 16:26
  • 1549

java7 新特性 总结版

Java7语法新特性:前言,这是大部分的特性,但还有一些没有写进去,比如多核 并行计算的支持加强 fork join 框架;这方面并没有真正写过和了解。也就不写进来了。1. switch中增加对Str...
  • hjm4702192
  • hjm4702192
  • 2014年06月11日 17:40
  • 4268

java文件处理 之 遍历文件夹

一:(1) java 确实 在一些方面比 c++做的好,记得我当时用c++遍历文件夹下的所有文件时,费了老半天的功夫呢 —— 最后,百度的结果还是不同的编译环境提供的.h头文件是不同的,我勒个去 ……...
  • u010700335
  • u010700335
  • 2014年10月17日 14:31
  • 1154

java nio: walkFileTree实现文件夹复制移动删除

从java 1.7开始,java提供了java.noi.file.Files类用于更方便的实现文件/文件夹操作。\ 在Files中提供了丰富的静态方法用于文件操作,Files也提供了文件移动和复制操...
  • 10km
  • 10km
  • 2017年01月13日 15:33
  • 2026

Java的一些高级特性(六)——Java7中的目录和文件管理

首先我们来看看Path类: package com.freesoft.java7newfeature; import java.io.IOException; import java.nio....
  • cockroach
  • cockroach
  • 2012年11月21日 23:05
  • 2533

java 入门书籍(java7)

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3...
  • q969403688
  • q969403688
  • 2014年05月15日 15:54
  • 10253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java7遍历文件夹
举报原因:
原因补充:

(最多只允许输入30个字)