`
vamdt
  • 浏览: 793 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

列目录

    博客分类:
  • Java
 
阅读更多
Demo 1:
package vamdt.io;

import java.io.*;;

public class TestFile {
	public static void main(String[] args) {
		list("E:/BOOK");
	}
	
	/**
	 * 
	 * @param path 将要罗列出结构的路径
	 * @param level 记录目录层次
	 */
	
	public static void list(String path) {
		File file = new File(path);
		System.out.println(file.getName());
		list(file, 1);
	}


	
	private static void list(File file, int level) {
		
		//判断目录是否存在
		if (!file.exists()) 
			System.out.println("目录不存在");
		
		String pre = "";
		for (int i=0; i<level; i++) 
			pre += "		";
//		System.out.println("pre:" + pre + "Over");
		
		File[] childs = file.listFiles();
		for (int i=0; i<childs.length; i++) {
			System.out.println(pre + childs[i].getName());
			if (childs[i].isDirectory()) 
				list(childs[i], level+1);
		}
		
	}

}



Demo 2:
package vamdt.io;

import java.io.File;
import java.util.LinkedList;

public class ListAllFiles {
	private static int level;
	
	public static void listAll(File file) {
		//若传入的是文件或者目录内无文件则返回
		if (file.isFile() || 0 == file.listFiles().length) {
			return;
		}
		
		File[] files = file.listFiles();
		files = sort(files);
		for (File f : files) {
			StringBuilder sb = new StringBuilder("");
			if (f.isFile()) {
				sb.append(getTAB(level));
				sb.append(f.getName());
			} else {
				sb.append(getTAB(level));
				sb.append(f.getName());
				sb.append("\\\\");
			}
			
			System.out.println(sb);
			
			//若是目录,则需进行递归处理,低前先把目录层次加一
			//递归完成之后,需要设置把目录曾自减一
			if(f.isDirectory()) {
				level++;
				listAll(f);
				level--;
			}
		}
	}

	//设定tab的多少,即目录层次
	private static String getTAB(int level) {
		String tab = "";
		for (int i=0; i<level; i++) 
			tab += "\t";
		return tab;
	}

	//按照目录在上,名字在下的方式进行排序
	private static File[] sort(File[] file) {
		LinkedList<File> list = new LinkedList<File>();
		for (File f : file) {
			//把目录加在开头,文件加在结尾
			if(f.isDirectory()) 
				list.addFirst(f);
			else
				list.addLast(f);
		}
		//转换为数组返回
		return list.toArray(new File[file.length]);
	}
	

	public static void main(String[] args) {
		File f = new File("E:/BOOK");
		listAll(f);
	}
}

分享到:
评论

相关推荐

    asp列目录方便管理自己的文件

    在ASP中,列目录指的是通过编程方式获取并显示服务器上特定路径下的所有文件和子目录,这对于网站管理员管理和维护文件系统非常有帮助。本文将详细讲解如何在ASP中实现列目录的功能,并提供相关知识点。 首先,ASP...

    服务器禁止列目录功能,以防止黑客扫描网站目录结构

    服务器禁止列目录功能,以防止黑客扫描网站目录结构

    文件夹列目录神器1.0绿色中文免费版

    文件夹列目录神器是一款非常好用的文件夹列目录工具,用户可以自定义选项列举文件目录,非常的方便,对于一般的列举目录工具,基本都是列举文件名,或者带路径的文件名,也没有很好的自定义选项。而这款就不同完全...

    列目录大小程序

    列出每个目录占用系统空间的大小,方便查看哪些程序占用空间较大,清理自己不需要的文件,特别适合空间较为紧张的老硬盘。WINXP、WIN2000、WINPE测试通过。

    列目录清单

    "列目录清单"这个主题涉及到的是如何创建一个文本文件(TXT格式),该文件能详细列出指定目录及其所有子目录中的内容。这通常用于备份、文件审计或者自动化任务,比如脚本编写。下面我们将深入探讨这一主题。 首先...

    文件列目录 TURBOC语言源代码.zip_turboc_zip

    【标题】"文件列目录 TURBOC语言源代码.zip_turboc_zip"指的是一个包含TURBOC编程语言源代码的压缩文件。TURBOC是Borland公司开发的一款早期的C编译器,它在80年代末90年代初广泛应用于个人计算机上的C语言编程,...

    下资源内部专用列目录工具v1.0绿色版

    来自下资源(xiazy.com)网站的内部专用列目录工具,本工具可以获取文件夹名称并保存为txt。 说明: 以往的工具都是列文件名,或者带路径的文件名,对于整理目录并不方便,而这是一款专门用来列举文件夹目录的工具,...

    Web应用安全:Nginx禁止目录列出配置.pptx

    Web应用安全是一个至关重要的主题,尤其是在...总的来说,理解并防止Nginx目录列出是确保Web应用安全的基础工作。通过正确配置和持续监控,可以显著降低遭受目录遍历攻击的风险,从而保护服务器和网站免受潜在的危害。

    DOS常用命令详解 dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录

    DOS常用命令详解 dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 ...tree 列目录树 debug 随机调试程序 doskey 重新调用DOS命令 prempt 设置提示符 undelete恢复被删的文件 scandisk检测、修理磁盘

    html漂亮的树形目录

    在网页设计中,一个美观且易于理解的树形目录对于组织和展示信息至关重要。"html漂亮的树形目录"就是一种利用HTML(超文本标记语言)技术实现的视觉效果优秀的导航结构,它通常由一系列嵌套的无序列表(`&lt;ul&gt;` 和 `...

    Web应用安全:Nginx禁止目录列出配置实验.doc

    Nginx 禁止目录列出配置实验 在本实验中,我们将学习如何在 Nginx 服务器上禁止目录列出配置,以防止目录遍历攻击。目录遍历攻击是一种常见的 Web 应用安全漏洞,攻击者可以通过该漏洞获取服务器上的敏感信息。 ...

    heise5yuetian#yougar0.github.io#四、FCKeditor 列目录1

    2、根据xml返回信息查看网站目录 3、获取当前文件夹 4、游览c盘

    列出目录中所有文件(含文件夹)

    在IT领域,尤其是在编程和系统管理中,"列出目录中所有文件(含文件夹)"是一个常见的需求。这个任务涉及到操作系统交互、文件系统操作以及编程语言的特定功能。以下是关于这个主题的详细知识: 1. **文件系统**:...

    用C/C++ 列出指定目录的所有文件夹和文件

    ### C/C++ 实现列出指定目录的所有文件夹和文件 #### 概述 本文将详细介绍如何使用 C/C++ 编程语言实现一个简单的程序来遍历指定目录,并列出该目录下的所有子目录与文件。本示例代码适用于 Windows 平台,并使用...

    用ASP列出目录及文件

    知识点:使用ASP(Active Server Pages)列出目录及文件 在早期的Web开发中,ASP是一种广泛使用的服务器端脚本环境,用于动态生成网页内容。在本文档中,我们通过几个ASP文件来实现一个功能——列出指定目录下的...

    E语言 列出所有子目录及文件

    E语言 列出所有子目录及文件 共开发人员研究删除目录或者FTP上传文件夹

    ASP列出目录及文件代码

    在ASP中,我们可以使用内置的对象和技术来实现对服务器上文件和目录的操作,比如列出目录中的文件。以下将详细介绍如何使用ASP来实现这个功能。 首先,我们需要了解两个核心的ASP对象:`Server`和`FileSystemObject...

    JAVA实现 根据所写文件的目录列出目录下的文件

    知道目录后,可以列出该目录下所属的文件 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; //列出目录下的文件 public class ListFileDemo extends JFrame{ JTextField ...

    VBA读取递归读取所有子目录

    下载文件,放到指定的文件夹,打开excle,点击运行。 该文件夹的和文件夹下的所有子目录就出来了。

    asp.net列出C盘文件夹目录与文件

    在ASP.NET中,列出特定驱动器,如C盘的文件夹目录和文件,是一个常见的文件系统操作。这个任务可以通过使用System.IO命名空间中的类来实现,特别是Directory和File类。以下是一个详细的步骤和知识点解析: 1. **...

Global site tag (gtag.js) - Google Analytics