`
yangxiangguo
  • 浏览: 1231 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
文章分类
社区版块
存档分类
最新评论

自己写的用递归实现树形目录,并且文件夹要在文件的上面显示

阅读更多
初学IO,请各位高手多提意见,不足之处请指出
package org.yang.Recursion;

import java.io.File;
import java.util.Arrays;
import java.util.Comparator;

public class TreeDir {
	//i用来判断缩进
	int i = 0;
	//n级目录就输出n个制表符
	public String createMark(int i){
		String s = "";
		for(int t = 0; t<i;t++){
			s = s + "\t";
		}
		return s;
	}
	public void showTree(File f){
		//根据全限定名中的分隔符的个数判断是几级目录
		int j = f.getAbsolutePath().split("\\\\").length-2;
		//递归出口:如果为空目录或者是文件时跳出
		if(f.isFile() || f.list() == null){
			System.out.println(createMark(j)+f.getName());
		}
		//进到else里面的f一定是目录,且目录下面不为空
		else{
			System.out.println(createMark(j)+f.getName()+"\\");
			File[] fff = f.listFiles();
			Arrays.sort(fff,new Comparator<File>(){
				@Override
				public int compare(File o1, File o2) {
					if(o1.isDirectory()&&o2.isFile()){
						return -1;
					}
					else if(o1.isDirectory()&&o2.isDirectory()){
						return 0;
					}
					return 1;
				}
			});
			for(File ff : fff){
				showTree(ff);
			}
		}
	}
	public static void main(String[] args) {
		TreeDir tree = new TreeDir();
		tree.showTree(new File("F:\\"));
	}
}
1
3
分享到:
评论

相关推荐

    文件夹树形目录生成器

    标题中的“文件夹树形目录生成器”是指一个工具或脚本,它的主要功能是创建一个文本文件(通常是TXT格式),该文件以树状结构显示指定文件夹内的目录层级关系。这种工具在管理大量文件和目录时非常有用,因为树形...

    C# 用递归的方式查找指定文件夹下的所有子目录

    在C#编程中,递归是一种强大的工具,常用于解决涉及层次结构或树形结构的问题,比如在文件系统中查找特定目录或文件。本话题主要关注如何使用递归方法遍历指定文件夹及其所有子目录。我们将探讨以下几个关键知识点:...

    VB文件夹目录树,树形结构显示硬盘目录夹

    要实现文件夹目录树的树形结构显示,我们需要以下步骤: 1. **初始化TreeView控件**:设置控件的基本属性,如`ShowLines`(显示连接线)和`ExpandAll`(是否自动展开所有节点)。 2. **枚举文件系统**:使用`My....

    递归删除文件或子目录

    在计算机编程中,递归是一种强大的技术,常用于解决涉及层级结构的问题,如遍历文件系统、树形数据结构或执行深度优先搜索等。在这个场景中,"递归删除文件或子目录"指的是编写一个程序,它能够遍历并删除指定目录下...

    c#文件操作实现资源管理器的一些功能,实现树形浏览全部文件,并且在LISTVIE显示具体信息,

    在这个项目中,我们利用C#实现了类似于Windows资源管理器的功能,允许用户以树形结构浏览文件系统,并在ListView控件中显示详细文件信息。以下是对这个实现的详细讲解: 首先,`TreeView`控件被用来模拟资源管理器...

    易语言利用树形框展示文件目录源码

    在易语言编程中,"利用树形框展示文件目录源码"是一个常见的需求,它涉及到图形用户界面(GUI)的设计和文件系统操作。易语言,作为一款中文编程环境,为初学者提供了简单直观的语法,使得这样的任务变得相对容易。...

    C#制作文件系统树形显示

    在C#编程中,制作文件系统树形显示是一项常见的任务,尤其在开发桌面应用程序时,如资源管理器或自定义文件浏览器。这个项目的核心是利用Windows Forms中的TreeView控件来模拟文件系统的层次结构,使用户能够以直观...

    用树形控件管理文件夹源码

    "用树形控件管理文件夹源码"的主题聚焦于如何利用树形控件这一UI元素来展示和管理计算机上的文件系统结构。树形控件是一种常见的图形用户界面组件,它以层级结构显示数据,非常适合用来表示文件夹和文件的层次关系。...

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

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

    MFC 树形控件CTreeCtrl显示文件路径及文件1

    在添加文件夹信息的同时,可能还需要使用图像列表(CImageList)来显示图标,比如文件夹和文件的图标。CImageList的构造函数可以设定图像的尺寸、颜色深度、初始数量和增长量。通过调用SetImageList方法将图像列表...

    [ASP.NET(C#)] - 利用递归遍历文件夹和文件存入TreeView

    TreeView 控件可以以树形结构展示文件夹和文件的关系,方便用户浏览和下载文件。 二、递归遍历文件夹和文件 为了将文件夹和文件存入 TreeView 中,我们需要使用递归遍历文件夹和文件。递归遍历的过程是指从某个...

    java 生成树形文件目录

    在Java编程中,生成树形文件目录是一项常见的任务,它涉及到文件系统操作和数据结构...通过这种方式,你可以用Java程序构建出一个功能完善的树形文件目录,无论是在命令行还是图形界面,都能清晰地展示文件系统的结构。

    使用递归生成文件目录树

    在`loadToTree`方法中,我们首先创建了一个代表应用程序启动路径的根节点,然后调用`getAllDirectories`方法来递归地添加所有的子目录和文件到树形视图中。 ##### 递归函数详解 `getAllDirectories`方法实现了核心...

    文件夹树形目录生成器 可一键生成目录 所有内容为文本

    在具体使用过程中,"文件夹树形目录生成器.bat"可能包含了批处理脚本语言,如Windows的DOS命令,如`tree`命令或者使用`dir /s /o:n &gt; tree.txt`这样的组合命令,来递归地列出目录结构并将结果输出到文本文件。...

    C#非递归后序遍历文件目录树

    在IT领域,特别是软件开发中,遍历文件目录树是一项常见的任务。对于C#开发者来说,理解如何非递归地后序遍历文件目录树是非常有用的技能。后序遍历通常指的是先访问子节点,再访问父节点的遍历顺序。这种遍历方式在...

    不用递归实现的无限级树型菜单

    传统的实现方式通常使用递归算法,但这种方法可能会导致内存消耗过大,尤其是在菜单层级很深的情况下。本主题介绍了一种不依赖递归的高效方法来创建无限级树型菜单,具有快速加载的特点。 首先,我们来看`WriteXML....

    易语言-树形框遍历文件夹内文件

    在易语言中,通过创建树形框组件并绑定相应的数据,可以实现对文件夹及其子文件夹的递归遍历。遍历的过程通常包括读取文件夹信息,将文件夹名添加到树形框的节点中,然后对每个子文件夹重复这个过程,直到遍历完整个...

    js树形结构的文件夹打开菜单代码

    "js树形结构的文件夹打开菜单代码"指的是利用JavaScript实现一个交互式的文件夹菜单,用户可以通过点击来展开和关闭文件夹,展现类似计算机文件系统的层级关系。 在创建这样的树形结构时,我们首先需要理解树的基本...

    VC遍历文件夹与文件,树控件展示

    本示例关注的是如何使用VC++来递归遍历一个指定的文件夹及其所有子文件夹,并将这些信息展示在一个树形控件中。这在构建文件管理系统或需要对文件进行批量操作的软件时非常有用。 首先,我们需要理解遍历文件夹的...

    利用递归实现指定目录下的EXE文件查找

    在这个任务中,我们将探讨如何利用VC++和MFC通过递归算法实现指定目录下EXE文件的查找。 首先,我们需要理解递归的基本概念。递归是一种函数或方法调用自身的技术,通常用于解决分治问题或遍历树形结构。在这个场景...

Global site tag (gtag.js) - Google Analytics