非递归遍历文件

Java非递归遍历文件夹 参考链接: https://blog.youkuaiyun.com/ADebugMan/article/details/103047780 递归遍历文件夹的思路: 若当前路径表示的为文件,则对文件进行相应操作; 若当前路径表示的为文件夹,则继续调用自身方法(递归思想)。 递归遍历文件夹的缺点: 若文件夹层级很深,会导致栈溢出。 非递归遍历文件夹的思路: 利用LinkedList存放当前文件及文件夹,取出第一个文件,判断为文件还是文件夹。如果是文件夹,继续将该文件夹内的文件及文件夹存入LinkedList;如果是文件,先 阅读详情
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());
			}
		}
	}
}





水环境综合管控平台完整方案 水环境综合管控平台项目(2026-2027)摘要 项目概况: 总投资5亿元的水环境综合管控平台项目,是国家数字政府与生态文明建设战略的重要实践。项目严格遵循2026年最新政策标准,整合物联网、大数据和AI技术,构建覆盖水质监测、污染溯源、生态保护等全流程的智能管控体系。 核心内容: 系统架构:采用五层设计(基础设施层至展示层),集成10大核心功能模块,包括水质动态监测、污染智能溯源和生态评估预警系统; 技术创新:运用2026年最新边缘计算和数字孪生技术,实现毫秒级水质异常响应和三维流域仿真; 实施规划:分7 阅读详情

相关推荐

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

递归与非递归 遍历文件目录

import java.io.File; import java.util.LinkedList; /* * 采用非递归方式遍历目录及其子目录的文件 */ public class ProcessDirectory { public static int num;//文件总量 public static void main(String[] args) { String pa

打渔还是晒网 —— stone 3167

深度学习|卷积神经网络

介绍卷积神经网络基本理论,包括卷积层、池化层和全连接层,并阐述LeNet卷积神经网络的构建过程。

weixin_58243219的博客 5727

java非递归遍历文件夹

本文采用非递归方式遍历指定目录下的所有内容。 提到文件夹的遍历,首先想到的就是递归,若找到文件,则对文件进行相应的操作。若为文件夹,则继续调用自身方法。 但递归调用存在一个问题,若文件的层级过深,有可能会引发栈溢出(具体栈溢出的相关知识可自行百度,这里不再详细介绍)。因此,采取非递归的方式,可以有效避免这种情况的发生。 本次采取的思路是利用LinkedList集合存储当前目录下的所有文件与文件夹,...

ADebugMan的博客 1053

从硅片到时钟:揭秘SiTime MEMS谐振子的精密制造之旅

本文深入解析了SiTime MEMS谐振子的精密制造工艺,从硅晶圆的提纯到DRIE深硅刻蚀,再到真空封装技术,揭示了其如何克服传统石英晶振的局限。通过对比测试数据,展示了MEMS谐振子在精度、可靠性和生产效率上的显著优势,特别是在5G基站和汽车电子等领域的应用潜力。

weixin_42522953的博客 403

ROS+Gazebo仿真入门:用TurtleBot3模拟扫地机器人全流程

本文详细介绍了如何利用ROS和Gazebo仿真平台,以TurtleBot3 Waffle Pi模型为核心,从零搭建并运行一个虚拟扫地机器人的全流程。内容涵盖仿真环境搭建、世界与机器人模型解析,并重点演示了SLAM建图、自适应蒙特卡罗定位以及全局与局部路径规划等核心算法实战,为机器人算法开发与验证提供了高效、低成本的解决方案。

sre5engineer的博客 1087

循环遍历文件_PHP非递归遍历目录下所有文件

上干货,直接看代码<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir...

weixin_33173126的博客 217

效果炸裂_安装midscene_copw基于midscene操作电脑_基于视觉的软件测试执行_MIDSCENE的安装和使用---AI大模型应用探索0012

摘要:本文介绍了如何通过安装MidSceneJS来增强Copaw的屏幕操作能力。首先需要安装Node.js和npm,并配置淘宝镜像源加速安装。然后全局安装MidScene CLI工具(npm install @midscene/cli -g)。接着配置视觉大模型服务,通过设置环境变量指定模型API密钥、名称、基础URL和家族类型(如qwen3.5-27b),配置文件需存放在C:\Users\Administrator.copaw目录。安装成功后,MidScene已能成功识别并操作屏幕,使用效果良好。文中还提

添柴程序猿的专栏 640

java递归和非递归方式遍历所有文件和目录

java递归和非递归方式遍历所有文件和目录

第七宇林的博客 2793

基于STM32的室内环境监测系统设计与实现

摘要 本文设计了一种基于STM32的室内环境监测系统,通过传感器实时采集温湿度、空气质量、烟雾浓度等数据,并利用Wi-Fi模块上传至云服务器。系统采用STM32F103C8T6作为主控芯片,结合DHT11、MQ系列传感器及BMP280气压传感器实现数据采集,通过ESP8266模块实现远程数据传输。用户可通过手机APP实时查看环境参数,并在数据超标时触发报警。实验表明,系统运行稳定,监测精度高,具有低成本、易扩展等特点,为改善室内环境质量提供了有效解决方案。 关键词:STM32;室内环境监测;传感器;Wi-F

3254968421的博客 221

开篇词:学习系统分析师的好处?核心考点有哪些?

系统分析师备考指南 系统分析师是IT行业的高级专业人才,具备系统分析与设计能力,能指导开发团队工作。学习系统分析师不仅能获得职业晋升的"黄金跳板",还能全面提升技术架构思维和业务理解能力。 核心价值: 职业发展:晋升管理岗位的硬性要求,突破职业天花板 能力提升:构建T型知识结构,培养架构思维和软技能 市场竞争力:成为"业务+技术"桥梁,获得国家级专业认证 考试内容: 计算机基础知识(硬件、操作系统、网络等) 系统分析专业知识(软件工程、架构设计等) 进阶知识(企业信息

数据知道的博客 5942

C# 非递归遍历所有子目录与子文件

非递归的遍历,使用栈来存储当前访问结点的子节点信息,用于接下来访问。 通过栈保存还没有访问的目录结点 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; us

Work Hard, Play Harder! 2714

ChatTutor:让AI老师“会写会画”,打造可视化、互动式智能教育新范式

ChatTutor是一款突破性的开源AI教学助手,通过可视化电子白板实现"边讲边写"的沉浸式教学体验。该项目支持数学公式手写输入、动态函数绘图、自动生成思维导图等功能,采用多智能体架构实现专业协同。未来将扩展至编程、物理等STEM教育领域,适用于学生自学、教师备课和教育平台集成。作为MIT协议开源项目,ChatTutor通过赋予AI"教学肢体语言",推动教育从信息传递转向可视化互动建构,重新定义了AI助教的可能性。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 423

Qt递归非递归遍历文件

Qt递归非递归遍历文件

Pegasus (http://ningning.today) 1602

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

非递归遍历文件夹

标签:c++ 休闲 非递归 职场 遍历文件夹 #include #include #include #include using namespace std; void TraverseFolder(string& path) { stack find_file; WIN32_FIND_DATA FindFileData; HAND

xqcjames的专栏 564

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

非递归方式遍历ftp文件夹

<br />由于单位服务器较大,使用递归的时候遍历程序 导致堆栈溢出的异常,从而 借鉴网上的朋友们 编写的 非递归遍历的本地文件夹改写的遍历ftp文件夹。<br /> /** * 非递归方式遍历文件夹 * @param path */ public void scanDirNoRecursion(String path){ //将某个磁阵目录 获得下面所有的文件夹和文件 List list = listFiles(path); //由于遍历需要重复删除操作集合 所以

dreamdoc的专栏 1450

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

c语言 遍历目录下的文件 非递归,FATFS文件系统,采用非递归的方法遍历文件夹...

本帖最后由 am3359 于 2018-1-18 17:02 编辑//我用STM32F407+FATFS+freeRTOS搭建的系统,需要遍历存储器中每个文件夹和文件,常用的办法是递归调用,遍历函数内嵌套自己直到找到每个文件或文件夹。由于目录深度不可控,这个方法有大量的压栈和出栈容易造成栈溢出系统崩溃。//现采用目录深度可控的非递归方法如下:#define LEVEL 8 ...

weixin_42110070的博客 1105

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1、为了方便使用,已经封装成了一个工具FileUtil package com.chen.ftpclient.utils; import java.io.File; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** ...

君临天下 9015

非递归实现文件夹遍历

之前有个电话面试,其中一道题就是:用非递归的方式实现文件夹遍历?在电面的时候没有答出来,过后分分钟就想到了答案,因为之前自己实现过按层序的方式打印一棵树,用的也是非递归的方式,现在遍历文件夹不就是遍历这颗树吗!怎么就没想出来呢!在这里简单的记录下,用了C#和C++两个版本实现。 我这里的实现的功能是:用非递归的方式获得一个文件夹中文件的个数。 思路简单介绍: 1:先将这个文件夹的路径加入一...

xp9802的专栏 302

遍历磁盘文件的递归和非递归算法

 1.遍历文件的递归算法   /************************************************************************//* 获得磁盘                                                                                                       

xieyuz的专栏 839

C++ 非递归遍历文件夹

【代码】C++ 非递归遍历文件夹。

JTB_xia的博客 238

win32下文件的遍历:递归遍历和非递归遍历

一、win32下文件的递归遍历【深度遍历】 递归遍历Demo如下: void FileSearch(char* searchDir) { char dirInfo[BUF]; WIN32_FIND_DATA fd; strcpy(dirInfo,searchDir); strcat(dirInfo,"\\*.*");//查询文件地址 strcpy(dirInfo+str

GeorgeGuo 1393

非递归方式遍历本地文件夹

<br />import java.io.File; import java.util.LinkedList; public class XX { public static int num; public static void main(String[] args) { long a = System.currentTimeMillis(); //String path="c:"; num=0;

dreamdoc的专栏 795
上一篇: android路径
下一篇: 短信
dcking
博客等级 码龄18年 8粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值