Java遍历目录,java获取指定目录下的所有文件

  Java遍历目录,java获取指定目录下的所有文件

  java中有两种方法可以遍历一个文件夹中的所有文件:一、递归遍历

  通常是开发者能想到的第一个方法。

  递归的优点是:

  实现相对简单,代码量相对较少,执行效率高。

  缺点是:

  吃内存多,对硬件要求高。

  在线视频教程分享:java在线视频

  具体算法如下:

  //递归遍历

  私有void getDirectory(文件file) {

  file flist[]=file . list files();

  if(flist==null flist . length==0){

  返回0;

  }

  for(文件f : flist) {

  if (f.isDirectory()) {

  //这里将列出所有文件夹

  system . out . println( Dir== f . getabsolutepath());

  get directory(f);

  }否则{

  //这里将列出所有文件

  system . out . println( file== f . getabsolutepath());

  }

  }

  }二、非递归遍历

  具体想法:

  遍历文件夹时,如果是文件夹,就添加到linkedlist,如果是文件,就列出来。这样就遍历了目录的文件和文件夹,所有的文件夹都保存在linkedlist中,那么剩下的就是和上面的操作一样遍历linkedlist中文件夹的文件了。

  如果是文件夹,它将被添加到linkedlist中。当然,每次从列表中取出一个文件夹时,都需要将其从列表中删除。这里使用linkedlist.removeFirst()来读取它,这样每次都会读取列表的第一个元素并从列表中移除。这样,只要linkedlist的状态是isEmty,遍历就完成了。

  具体算法如下:

  /**

  *非递归遍历

  * @param文件

  * @返回

  */

  公共静态LinkedListFile GetDirectory(字符串路径){

  File file=新文件(路径);

  linked list file Dirlist=new linked list file();//保存要遍历的文件夹列表

  linked listfile file list=new linked listfile();

  GetOneDir(文件、目录列表、文件列表);//调用遍历文件夹根文件的方法

  文件tmp

  而(!Dirlist.isEmpty()) {

  tmp=(File)dirlist . remove first();

  //删除文件夹列表中的第一个文件夹,返回赋给tmp变量的文件夹。

  //遍历该文件夹下的所有文件,并将

  GetOneDir(tmp,Dirlist,file list);

  }

  返回文件列表;

  }

  //遍历指定文件夹根目录中的文件

  私有静态void GetOneDir(File file,LinkedListFile Dirlist,

  LinkedListFile文件列表){

  //每次遍历文件夹时都会调用这个方法

  file[]files=file . list files();

  if(files==null files . length==0){

  返回;

  }

  for(文件f:文件){

  if (f.isDirectory()) {

  dirlist . add(f);

  }否则{

  //此处列出当前文件夹根目录下的所有文件,并添加到fileList列表中。

  filelist . add(f);

  //system . out . println( file== f);

  }

  }

  }相关文章教程推荐:java入门教程以上是java实现遍历某个目录下(包括子目录)所有文件的详细内容。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: