`
zhanghaidang
  • 浏览: 39346 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

深度遍历目录

    博客分类:
  • J2EE
阅读更多
有一年多没有搞Java了,一直在搞数据库与JS,今天突然要写一个深度遍历目录,获取文件数及文件大小的程序,呵呵,花了一个多小时才搞出来了,感觉自己在Java这块生疏了很多,哎,什么都是这样,不用,一下子就会忘记好多的,为了今后便于再次利用,贴上源代码.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;

public class EachFolder {
	private String folder;
	private String outFileName;
	private StringBuffer sb;

	public EachFolder() {
		this.folder = "F:/Book/CSS";
		this.outFileName = "F:/test.txt";
		sb = new StringBuffer("");
	}

	public EachFolder(String folder, String outFileName) {
		this.folder = folder;
		this.outFileName = outFileName;
		sb = new StringBuffer("");
	}

	public void exec() {
		File ef = new File(this.folder);
		this.each(ef);
		this.writeFile();
	}

	private void each(File f) {
		String[] flist = f.list();
		for (String fn : flist) {
			File file = new File(f.getPath() + "/" + fn);
			if (file.isDirectory()) {
				this.each(file);
			} else if (file.isFile()) {
				try {
					int size = new FileInputStream(file).available();
					int kb = size / 1024 > 0 ? size / 1024 + 1 : 1;
					sb.append("文件名:" + file.getPath() + "***********文件大小:" + kb
							+ "kb\n");
				} catch (FileNotFoundException e) {
					e.printStackTrace();
					System.out.println("文件未找到");
				} catch (IOException e) {
					e.printStackTrace();
					System.out.println("IO流错误");
				}
			}
		}
	}

	private void writeFile() {
		try {
			BufferedReader br = new BufferedReader(new StringReader(
					sb.toString())); // 输入流
			BufferedWriter bw = new BufferedWriter(new FileWriter(outFileName)); // 输出流
			String line = null;
			while ((line = br.readLine()) != null) {
				bw.write(line + "\n");
			}
			bw.flush();
			bw.close();
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		EachFolder ef = new EachFolder("F:/Book/JavaSE", "F:/test.txt");
		ef.exec();
	}
}

1
1
分享到:
评论

相关推荐

    易语言非子程序嵌套实现遍历目录源码

    值得注意的是,虽然题目要求不使用子程序,但为了实现深度遍历(即遍历所有子目录的子目录),通常需要递归,这在易语言中通常表现为子程序。不过,我们可以通过使用结构化的方式(如“堆栈”数据结构)来避免使用...

    java 遍历文件目录

    例如,使用`Files.walk()`方法可以方便地深度遍历目录及其所有子目录: ```java Path startPath = Paths.get("path/to/directory"); try (Stream<Path> stream = Files.walk(startPath)) { stream.forEach(path ->...

    C++ 遍历目录的代码实现

    通过调用`GetFiles()`和`GetDirectories()`在子目录上,我们可以实现深度遍历整个文件系统树: ```cpp void TraverseDirectory(DirectoryInfo^ dir) { for each (FileInfo^ file in dir->GetFiles()) { // 处理...

    批处理遍历目录,取文件

    例如,如果目录结构复杂,可以通过递归函数实现深度遍历。同时,为了安全起见,可以考虑使用`passive`模式进行FTP连接,以避免防火墙或NAT设备的问题。 为了实现这个功能,你需要创建一个批处理脚本,其中包含上述...

    遍历文件夹自动生成目录树

    在Java中,遍历目录树可以这样实现: ```java import java.io.File; public class DirectoryTraversal { public static void traverse(File startPath) { if (startPath.isDirectory()) { String[] children = ...

    递归遍历目录并生成树

    在IT领域,尤其是在Windows开发中,经常需要处理文件系统操作,如遍历目录结构并以图形化的方式展示出来。在给定的标题“递归遍历目录并生成树”中,涉及的核心技术是递归算法和Windows API的使用,特别是与文件系统...

    易语言非递归算法遍历目录

    在编程领域,遍历目录是一项常见的任务,尤其在处理大量文件和目录时,效率尤为重要。易语言是一种中国本土开发的编程语言,它以其简洁的语法和面向初学者的设计而受到欢迎。本文将深入探讨易语言中如何使用非递归...

    java 对文件夹目录进行深度遍历实例代码

    在Java编程语言中,对文件夹目录进行深度遍历是一个基础且常见的操作,它主要用于列出目录树下的所有文件和子目录。深度遍历(又称深度优先遍历)是指沿着树的深度遍历树的节点,尽可能深地搜索树的分支,当节点v的...

    nokia_sms_reader

    该程序的核心功能在于深度遍历目录。在计算机科学中,深度优先搜索(DFS)是一种遍历或搜索树或图的算法,它沿着树的分支尽可能深地搜索,直到达到叶节点或满足某种条件为止。在这个应用中,DFS被用来逐级查找手机...

    java 实现分页目录查询.zip

    为了实现分页查询,`FileUtil`可能会包含一个递归函数,用于深度遍历目录,收集所有文件信息,并将这些信息传递给`FileMap`进行处理。递归是关键,因为它能确保无论目录结构多么复杂,都能正确地获取所有子目录和...

    Linux 遍历目录

    在Linux操作系统中,遍历目录是一项基础且至关重要的任务,尤其对于系统管理员和开发者来说,了解如何有效地遍历和操作文件系统是必备技能。Linux是一个类UNIX系统,其文件系统结构遵循一种层次化的树状模型,从根...

    易语言源码非递归算法遍历目录.7z

    在"易语言源码非递归算法遍历目录.7z"这个压缩包中,包含的是使用易语言编写的源代码,用于实现一种非递归算法来遍历目录结构。非递归算法不同于传统的递归方式,递归通常会通过函数自我调用来处理目录树,而这种非...

    网站目录遍历软件

    例如,他们可能会尝试使用“../”或“..%2f”等符号来“向上”遍历目录结构,以查看不应公开的系统文件或敏感数据。 2. **网站扫描**:网站扫描是使用自动化工具来检测网站的漏洞、弱点和配置错误的过程。它包括了...

    vb 遍历 目录

    在VB(Visual Basic)编程中,遍历目录是一项常见的任务,尤其在处理文件系统操作时。这涉及到访问和处理文件夹及其子文件夹中的文件。本文将深入探讨如何使用VB来遍历目录,并提供相关知识点。 一、VB的...

    web敏感目录、信息泄漏批量扫描脚本,结合爬虫、目录深度遍历。.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    运用API的快速文件搜索方法(7KB)...

    `Dir`函数虽然简单易用,但在处理大量文件或深度遍历目录结构时,速度相对较慢。API函数直接与操作系统交互,因此可以提供更快的搜索速度。 DRVSCAN.FRM可能是表单文件,展示了用户界面的设计,可能包含一个文本框...

    C#遍历指定目录(包括子目录)的递归

    下面我们将深入探讨C#中遍历目录的递归方法以及相关知识点。 1. **System.IO命名空间**:在C#中,`System.IO`命名空间提供了用于处理文件和目录的各种类和方法。`DirectoryInfo`和`FileInfo`类分别代表目录和文件...

    易语言搜索mp3例程

    易语言提供了“目录列举”或“深度遍历目录”等命令,可以递归地遍历指定路径下的所有子目录和文件,从而找到所有的MP3文件。 5. **条件判断与循环控制**: 在搜索过程中,会涉及到条件判断(如“如果...则...”)...

Global site tag (gtag.js) - Google Analytics