`
xiaoming123123
  • 浏览: 101009 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

以树形方式展现出该目录中的所有子目录和文件

    博客分类:
  • J2SE
阅读更多
/*
 * 题目:给定任意一个目录,以树形方式展现出该目录中的所有子目录和文件。
 * 另外,在展现的时候将目录排在上面,文件排在下面。每一层要加上缩进
 */

package com.io;

import java.io.File;
import java.util.ArrayList;

public class ListAllTest {

	//用于判断目录或文件所处的层次
	private static int time;
	
	//递归的方法
	public static void deepList(File file) {
		
		if(file.isFile() || 0 == file.listFiles().length) {   //递归出口,判断是不是文件或者目录里面没有内容
			return ;
		}
		else {
			File[] files = file.listFiles();
			files = sort(files);
			
			for(File f : files) {
				StringBuffer output = new StringBuffer();
				
				if(f.isFile()) {
					
					output.append(getTabs(time));
					output.append(f.getName());
				}
				else {
					
					output.append(getTabs(time));
					output.append(f.getName());
					output.append("\\");
				}
				
				System.out.println(output);
				
				if(f.isDirectory()) {
					time++;
					deepList(f);
					time--;
				}
			}
		}
	}
	
	//整理文件数组,使用目录排在文件之前
	private static File[] sort(File[] files) {
		
		ArrayList<File> sorted = new ArrayList<File>();
		
		//寻找到所有的目录
		for(File f : files) {
			
			if(f.isDirectory()) {
				sorted.add(f);
			}
		}
		
		//寻找到所有的目录
		for(File f : files) {
			
			if(f.isFile()) {
				sorted.add(f);
			}
		}
		
		return sorted.toArray(new File[files.length]);
	}
	
	//判断需要加多少tab的方法
	private static String getTabs(int time) {
		
		StringBuffer buffer = new StringBuffer();
		
		for(int i = 0; i < time; i++) {
			buffer.append("\t");
		}
		
		return buffer.toString();
	}
	
	public static void main(String[] args) {
		
		File file = new File("f:" + File.separator + "ghost");
		deepList(file);
	}
}

分享到:
评论
1 楼 ilysys 2011-11-13  

相关推荐

    易语言枚举目录文件到树形框

    总的来说,"易语言枚举目录文件到树形框"是一个涉及文件系统操作、图形用户界面设计以及事件驱动编程的实例,它在易语言环境中展示了如何将复杂的系统功能以直观、易于操作的方式呈现给用户。通过对相关函数和事件的...

    filetree以树形结构显示文件目录结构

    这是因为树形结构直观地展现了文件和子目录的层次关系,用户可以一眼看出哪些文件夹包含其他文件夹,哪些是直接包含文件。这对于讲解项目结构、部署流程或者代码组织方式来说,是非常有效的工具。 `filetree`的实现...

    树形目录菜单生成器 .rar

    树形菜单是一种以树状结构展现数据的用户界面元素,它模拟了计算机文件系统的目录结构,每个节点代表一个目录或文件,可以有子节点(子目录或文件)。通过展开和折叠的操作,用户可以方便地浏览和操作多级目录。 ...

    LABVIEW树形结构实例

    通过以上文件,初学者可以了解到如何在LabVIEW中创建、操作和显示树形结构,包括加载数据、遍历节点、添加和修改节点信息等基本操作。这些实例提供了一套完整的树形结构功能示例,有助于快速掌握LabVIEW中的树形控件...

    C#获取某文件夹下的目录树,目录结构

    在C#编程中,构建一个文件夹下的目录树结构是一项常见的任务,这有助于我们更好地管理和操作文件系统。本文将深入探讨如何使用C#语言来实现这一功能,特别是通过递归方法来查找并存储一个文件夹及其子文件夹内的所有...

    利用VC++6.0树形控件开发的遍历WINDOWS文件

    本项目标题所指的“利用VC++6.0树形控件开发的遍历WINDOWS文件”是将Windows文件系统以树形结构展现出来,用户可以通过点击节点来浏览不同目录下的文件和子目录。以下将详细讲解如何实现这一功能。 首先,我们需要...

    权限管理系统 树形控件

    在权限管理系统中,树形控件常用于展现资源的层级结构,例如目录结构、部门组织结构或功能模块结构。每个节点代表一个资源或子系统,通过展开和折叠操作,用户可以查看不同级别的权限分配情况。 1. **层级结构的...

    好看的树形结构菜单

    6. **应用场景**:树形结构菜单广泛应用于文件浏览器、组织结构图、导航菜单、权限管理、分类目录等场景,尤其在需要展现多级关系的地方,它们能有效地减少用户的认知负担。 7. **编程实现**:在JavaScript中,实现...

    树形结构和右键弹出菜单.zip

    在LabVIEW中,树形结构常用于组织和展示具有层级关系的数据,如文件系统、目录结构或者设备配置。用户可以通过展开或折叠节点来查看不同级别的信息。这种控件的优势在于能够清晰地展现复杂的关系,使得用户能快速...

    js树形控件js树形控件

    JavaScript(简称JS)树形控件是一种在网页中展示层级数据结构的交互式元素,它通常用于展现目录结构、组织架构、文件系统等。在网页设计中,这种控件能够帮助用户以图形化的方式理解复杂的数据关系,通过展开、折叠...

    清晰美观树形结构

    "LIGERUI"是一款专注于提供清晰、美观树形结构的前端框架,它为开发者提供了强大的工具来创建用户界面,使得复杂的层级数据能够以直观且易于操作的方式展现给用户。 树形结构是一种数据结构,由节点(或称为顶点)...

    mfc树形结构例子

    总的来说,MFC的树形结构为开发者提供了一种直观的方式来展现和操作层次数据,广泛应用于各种Windows应用程序中。通过熟练掌握CTreeCtrl类及其方法,开发者能够创建功能丰富的用户界面,提高用户的交互体验。

    简易好看的树形列表开发

    在UI设计中,树形结构常用于展现层次化数据,如文件系统、组织架构或分类目录。用户可以通过展开和折叠节点来查看和操作不同级别的信息。 2. **左右两栏布局**:这种设计模式将树形结构放在左侧,显示数据的层次...

    jQuery树形复选框插件.zip

    树形复选框插件通常会将数据结构以递归的方式展现,每个节点可以包含子节点,而每个节点都有一个复选框供用户选择。这种结构使得用户能够方便地管理层次化的数据,例如目录结构、权限设置或者组织架构等。 在压缩包...

    树形导航模板(后台html框架源代码)

    在后台管理系统中,树形导航模板是一种常见的设计元素,它以树状的层次结构来展现数据,每个节点代表一个类别或项目,子节点则表示该类别下的子项。通过点击节点,用户可以展开或折叠子节点,快速定位到所需的信息或...

    实用树形菜单插件

    树形菜单是一种以树状结构展现的数据组织形式,它模拟了计算机文件系统的目录结构,通过节点(菜单项)和层级关系(父节点与子节点)来呈现信息。在网页中,它通常出现在页面左侧,用于引导用户方便地访问多级分类的...

    树形表格 treetable 完整版 带演示demo例子

    总之,“树形表格treetable完整版”提供了一种高效且灵活的方式来处理和展示层次数据,配合其演示demo,开发者可以轻松地将这种功能整合到自己的项目中,提升数据展现的直观性和用户体验。通过二次开发,可以进一步...

    磁盘树形结构代码_磁盘_

    在函数内部,调用`GetDirectories()`和`GetFiles()`来获取子目录和文件,并将它们添加到树形结构中。对于子目录,再次调用该函数,直到遍历完所有子目录。 3. **构建树形结构**:在C#中,可以使用`TreeView`控件来...

    jquery tree树形结构导航菜单代码.zip

    本文将深入探讨如何使用jQuery库创建高效的树形结构导航菜单,并以"jquery tree树形结构导航菜单代码.zip"中的示例为参考,解析其工作原理和实现方法。 首先,jQuery是一个轻量级的JavaScript库,它的简洁API和强大...

    Labview Tree控件简单应用

    Labview是一款强大的图形化编程环境,它以直观的图标和连线代替传统的文本代码,使得复杂的系统设计...在实际项目中,树形控件常被应用于配置管理、设备状态监控、文件系统浏览等多种场景,展现出强大的功能和灵活性。

Global site tag (gtag.js) - Google Analytics