文档章节

非递归方法实现对TB级文件目录的全遍历

陶邦仁
 陶邦仁
发布于 2012/11/16 23:02
字数 239
阅读 352
收藏 7

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

递归的方法,在递归数量过大的时候,会导致堆栈溢出错误。用非递归方法,可以实现。

package com.taoxg.test;

import java.io.*;
import java.util.LinkedList;
public class LoopDir {
public static void main(String[] args) {
  long count=0;
  long countd=0;
  //链表
  LinkedList<File> list = new LinkedList<File>();
  File dir = new File("D://");
  File[] file = dir.listFiles();
  for (int i = 0; i < file.length; i++) {
   if (file[i].isDirectory())
    //把第一层的目录,全部放入链表
    list.add(file[i]);
   else
    count++;
    System.out.println("文件"+count + ":" + file[i].getAbsolutePath());
  }
  File tmp=null;
  //循环遍历链表
  while (!list.isEmpty()) {
   //把链表的第一个记录删除
   tmp = list.removeFirst();
   //如果删除的目录是一个路径的话
   if (tmp.isDirectory()) {
    //列出这个目录下的文件到数组中
    file = tmp.listFiles();
    if (file == null)
     continue;
    //遍历文件数组
    for (int i = 0; i < file.length; i++) {
     if (file[i].isDirectory())
      //如果遍历到的是目录,则继续加入链表
      list.add(file[i]);
     else
     count++;
     System.out.println("文件"+count + ":" + file[i].getAbsolutePath());
    }
   } else {
    countd++;
    System.out.println("目录["+countd+"]路径:" +tmp.getAbsolutePath());
   }
  }
}
}

© 著作权归作者所有

陶邦仁
粉丝 1715
博文 420
码字总数 1483963
作品 0
海淀
技术主管
私信 提问
加载中

评论(0)

Python 之 os.walk()

原文地址https://www.cnblogs.com/JetpropelledSnake/p/8982495.html http://www.runoob.com/python/os-walk.html os.walk方法,主要用来遍历一个目录内各个子目录和子文件。 os.walk(top, t......

osc_nabskja3
2018/09/02
1
0
Python入门之os.walk()方法

os.walk方法,主要用来遍历一个目录内各个子目录和子文件。 os.walk(top, topdown=True, οnerrοr=None, followlinks=False) 可以得到一个三元tupple(dirpath, dirnames, filenames), 第一个...

LuckyJoey
04/01
0
0
Python之os.walk()方法

os.walk方法,主要用来遍历一个目录内各个子目录和子文件。 可以得到一个三元tupple(dirpath, dirnames, filenames), 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文...

Lindsay.Lu丶
04/01
0
0
Java 之 递归&递归操作文件

一、概述   递归:指在当前方法内调用自己的现象。   递归的分类:  递归分为两种,直接递归和间接递归 直接递归称为方法自身调用自己 间接递归可以 A 方法调用 B 方法,B 方法调用 C ...

osc_zh10j2cp
2019/09/07
4
0
这都不会,还学什么Python?利用栈和队列模拟递归

下面从一个尽量贴近一个初学者的角度,给大家细致入微的了解一下Python中的递归。 一,递归递归调用:一个函数,调用的自身,称为递归调用递归函数:一个可以调用自身的函数称为递归函数  ...

无也Python
2018/10/19
28
0

没有更多内容

加载失败,请刷新页面

加载更多

认知智能技术三大技术体系之认知维度道翰天琼

认知维度技术体系是认知智能三大技术体系(认知维度,类脑模型,万维图普)之一 。认知维度技术体系以中西方哲学思想体系,认知语言学,形式语言学,三体论等思想体系为基础,以划分人类认知...

jackli2020
32分钟前
19
0
Oracle中如何实现分页+排序? 其中遇到的问题,你,注意了嘛???

分页 + 排序 一.简单分页: 需求:分页查询台账表T_ACCOUNT,每页10条记录 分析:我们在ORACLE进行分页查询,需要用到伪列ROWNUM和嵌套查询 我们首先显示前10条记录,语句如下: select rownu...

煌sir
34分钟前
125
0
使用JavaScript获取当前URL? - Get the current URL with JavaScript?

问题: All I want is to get the website URL. 我想要的只是获取网站URL。 Not the URL as taken from a link. 不是从链接获取的URL。 On the page loading I need to be able to grab the ......

技术盛宴
45分钟前
11
0
PHP实战之Cookie会话控制

目录 1. 前言 2. HTTP协议简介及原理 2.1会话控制简介及HTTP浅析 3. COOKIE的使用 3.1 Cookie简介 3.2 cookie使用场景 3.2.1操作cookie思维导图 3.2.2操作cookie代码 3.2.3 setrawcookie的使...

六道木
46分钟前
19
0
Python笔记:批量提取PDF表格数据(每页都含有相同表头的)

现在有一份PDF数据,里面有两页,每页都有相同的数据结构但数据内容不同的数据表(每页都有相同的表头),现在需要使用Python将它批量提取出来。 我们需要使用pdfplumber模块(因为有墙的原因...

tengyulong
57分钟前
29
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部