[Java] java非递归方法实现对目录的全遍历 →→→→→进入此内容的聊天室

来自 , 2021-03-24, 写在 Java, 查看 135 次.
URL http://www.code666.cn/view/3ce83f54
  1. package com.taoxg.test;
  2.  
  3. import java.io.*;
  4. import java.util.LinkedList;
  5. public class LoopDir {
  6.  public static void main(String[] args) {
  7.   long count=0;
  8.   long countd=0;
  9.   //链表
  10.   LinkedList<File> list = new LinkedList<File>();
  11.   File dir = new File("D://");
  12.   File[] file = dir.listFiles();
  13.   for (int i = 0; i < file.length; i++) {
  14.    if (file[i].isDirectory())
  15.     //把第一层的目录,全部放入链表
  16.     list.add(file[i]);
  17.    else
  18.     count++;
  19.     System.out.println("文件"+count + ":" + file[i].getAbsolutePath());
  20.   }
  21.   File tmp=null;
  22.   //循环遍历链表
  23.   while (!list.isEmpty()) {
  24.    //把链表的第一个记录删除
  25.    tmp = list.removeFirst();
  26.    //如果删除的目录是一个路径的话
  27.    if (tmp.isDirectory()) {
  28.     //列出这个目录下的文件到数组中
  29.     file = tmp.listFiles();
  30.     if (file == null)
  31.      continue;
  32.     //遍历文件数组
  33.     for (int i = 0; i < file.length; i++) {
  34.      if (file[i].isDirectory())
  35.       //如果遍历到的是目录,则继续加入链表
  36.       list.add(file[i]);
  37.      else
  38.      count++;
  39.      System.out.println("文件"+count + ":" + file[i].getAbsolutePath());
  40.     }
  41.    } else {
  42.     countd++;
  43.     System.out.println("目录["+countd+"]路径:" +tmp.getAbsolutePath());
  44.    }
  45.   }
  46.  }
  47. }
  48. //java/5507

回复 "java非递归方法实现对目录的全遍历"

这儿你可以回复上面这条便签

captcha