Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

下面通过一段代码介绍下Java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。


import java.io.File;
 public class ReadDirectory {
  // 文件所在的层数
  private int fileLevel;
  /**
  * 生成输出格式
  * @param name 输出的文件名或目录名
  * @param level 输出的文件名或者目录名所在的层次
  * @return 输出的字符串
  */
  public String createPrintStr(String name, int level) {
   // 输出的前缀
   String printStr = "";
   // 按层次进行缩进
   for (int i = ; i < level; i ++) {
    printStr = printStr + " ";
   }
   printStr = printStr + "- " + name;
   return printStr;
  }
  /**
  * 输出初始给定的目录
  * @param dirPath 给定的目录
  */
  public void printDir(String dirPath){
   // 将给定的目录进行分割
   String[] dirNameList = dirPath.split("\\\\");
   // 设定文件level的base
   fileLevel = dirNameList.length;
   // 按格式输出
   for (int i = ; i < dirNameList.length; i ++) {
    System.out.println(createPrintStr(dirNameList[i], i));
   }
  }
  /**
  * 输出给定目录下的文件,包括子目录中的文件
  * @param dirPath 给定的目录
  */
  public void readFile(String dirPath) {
   // 建立当前目录中文件的File对象
   File file = new File(dirPath);
   // 取得代表目录中所有文件的File对象数组
   File[] list = file.listFiles();
   // 遍历file数组
   for (int i = ; i < list.length; i++) {
    if (list.isDirectory()) {
     System.out.println(createPrintStr(list.getName(), fileLevel));
     fileLevel ++;
     // 递归子目录
     readFile(list.getPath());
     fileLevel --;
    } else {
     System.out.println(createPrintStr(list.getName(), fileLevel));
    }
   }
  }
  public static void main(String[] args) {
   ReadDirectory rd = new ReadDirectory();
   String dirPath = "D:\\有道词典";
   rd.printDir(dirPath);
   rd.readFile(dirPath);
  }
 }

输出结果如下:

以上就是本文的全部内容,希望大家喜欢。

(0)

相关推荐

  • Java创建树形结构算法实例代码

    在JavaWeb的相关开发中经常会涉及到多级菜单的展示,为了方便菜单的管理需要使用数据库进行支持,本例采用相关算法讲数据库中的条形记录进行相关组装和排序讲菜单组装成树形结构. 首先是需要的JavaBean import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Date; import j

  • Java递归算法的使用分析

    递归算法是一种直接或者间接地调用自身的算法.在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解. 问题1:一列数的规则如下: 1.1.2.3.5.8.13.21.34 ,求第30位数是多少?使用递归实现 复制代码 代码如下: public class FibonacciSequence {    public static void main(String[] args){        System.out.println(Fribonacci(9))

  • Java算法之递归算法计算阶乘

    本文为大家分享的java算法计算阶乘,在学习Java课程时经常会遇到求阶乘问题,今天接跟大家一起探讨一下 代码如下: package com.xu.main; import java.util.Scanner; public class P9 { static long fact(int n) { if(n <= 1) { return 1; } else { return n * fact(n - 1); } } public static void main(String[] args) {

  • 使用递归算法结合数据库解析成Java树形结构的代码解析

    1.准备表结构及对应的表数据 a.表结构: create table TB_TREE ( CID NUMBER not null, CNAME VARCHAR2(50), PID NUMBER //父节点 ) b.表数据: insert into tb_tree (CID, CNAME, PID) values (1, '中国', 0); insert into tb_tree (CID, CNAME, PID) values (2, '北京市', 1); insert into tb_tree

  • JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现

    在网站开发中经常遇到级联数据的展示,比如选择城市的时候弹出的省市县选择界面.很多前端制作人员习惯于从JSON中而不是从数据库中获取省市县数据.那么在选择了省市县中的某一个城市 ,存储到数据库中需要存储所选城市的代码.所以需要一个能将JSON数据(一般存储在javascript脚本中)结构全部导入到数据库中的功能. JSON的特点是支持层级结构.支持数组表示的对象 .下面的示例介绍如何将JSON的省市县数据保存到数据库中,实现原理非常简单,就是利用JSON的java工具包API,将层次结构的JSO

  • Java递归算法经典实例(经典兔子问题)

    题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:首先我们要明白题目的意思指的是每个月的兔子总对数:假设将兔子分为小中大三种,兔子从出生后三个月后每个月就会生出一对兔子, 那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为大兔子,那么第一个月分别有1.0.0,第二个月分别为0.1.0, 第三个月分别为1.0.1,第四个月分别为,1.1.1,第五个月分别为2.1.2,第六个月分别为3.2.3,第

  • Java递归遍历树形结构

    废话不多说了,直接给大家贴代码,具体代码如下所示: //菜单树形结构 public JSONArray treeMenuList(JSONArray menuList, int parentId) { JSONArray childMenu = new JSONArray(); for (Object object : menuList) { JSONObject jsonMenu = JSONObject.fromObject(object); int menuId = jsonMenu.ge

  • java、js中实现无限层级的树形结构方法(类似递归)

    js中: var zNodes=[ {id:0,pId:-1,name:"Aaaa"}, {id:1,pId:0,name:"A"}, {id:11,pId:1,name:"A1"}, {id:12,pId:1,name:"A2"}, {id:13,pId:1,name:"A3"}, {id:2,pId:0,name:"B"}, {id:21,pId:2,name:"B1&qu

  • Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

    下面通过一段代码介绍下Java输出指定目录.树形结构下的所有文件包括子目录中的文件的方法,并附有效果图. import java.io.File; public class ReadDirectory { // 文件所在的层数 private int fileLevel; /** * 生成输出格式 * @param name 输出的文件名或目录名 * @param level 输出的文件名或者目录名所在的层次 * @return 输出的字符串 */ public String createPri

  • python 遍历目录(包括子目录)下所有文件的实例

    如下所示: def list_all_files(rootdir): import os _files = [] list = os.listdir(rootdir) #列出文件夹下所有的目录与文件 for i in range(0,len(list)): path = os.path.join(rootdir,list[i]) if os.path.isdir(path): _files.extend(list_all_files(path)) if os.path.isfile(path):

  • 读取目录下的所有文件(包括子目录下的所有文件)

    ****************************** Many times we might need some part of code which will access all sub-folders of the server and also all files within the sub-folder. The following line of asp code will map to a specified folder and searches all the sub

  • java实现省市区转换成树形结构

    本文实例为大家分享了java实现省市区转换成树形结构的具体代码,供大家参考,具体内容如下 前言:为什我想写这篇博客呢?第一方面是记录,另一方面是分享. 1.创建数据库表 1.建表语句 CREATE TABLE `area` ( `AREA_CODE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '区域ID', `AREA_NAME` varchar(512) CHARACTER SET utf8

  • PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)

    如果做一个在线的文件管理系统的话,那么首先必须知道怎么读取目录和文件,其实这个功能几行代码就可以实现了. 输出效果: 实现代码: 复制代码 代码如下: <?php $dir = "D:/";  //要获取的目录 echo "********** 获取目录下所有文件和文件夹 ***********<hr/>"; //先判断指定的路径是不是一个文件夹 if (is_dir($dir)){  if ($dh = opendir($dir)){   whi

  • Java如何获取指定目录文件列表

    最近项目中会动态生成文件html及相关资源文件(css,js,png,mp3),为了防止文件名重复,需要获取目录中相同类型文件的最大编号,下面我用代码来实现获得文件列表. public static void getFiles(String path) { File file = new File(path); // 如果这个路径是文件夹 if (file.isDirectory()) { // 获取路径下的所有文件 File[] files = file.listFiles(); for (i

  • Java实现读取文件夹下(包括子目录)所有文件的文件名

    在编程的过程中,经常会用到对文件的读写操作等.比如,找出某一个文件夹下的所有文件名等. 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序.可以作为某一个模块,在需要的时候直接使用. package src; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStrea

  • Java实现的模糊匹配某文件夹下的文件并删除功能示例

    本文实例讲述了Java实现的模糊匹配某文件夹下的文件并删除功能.分享给大家供大家参考,具体如下: package com.wyebd.gis; import java.io.File; /** * @Title: DelFiles.java * @Package com.wyebd.gis * @Description: * @author lisr * @date Mar 7, 2012 5:36:03 PM * @version V1.0 */ public class DelFiles {

  • Java删除文件、目录及目录下所有文件的方法实例

    前言 本文主要实现的功能是删除某个目录及目录下的所有子目录和文件,涉及到的知识点:File.delete()用于删除"某个文件或者空目录"!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除. 具体代码示例如下: import java.io.File; public class DeleteDirectory { /** * 删除空目录 * @param dir 将要删除的目录路径 */ private static void doDeleteEmptyDir(String

  • 使用递归删除树形结构的所有子节点(java和mysql实现)

    1.业务场景 有如下树形结构: +-0 +-1 +-2 +-4 +-5 +-3 如果删除某个父节点,则其子节点,以及其子节点的子节点,以此类推,需要全部删除. 2.Java实现 使用Map存储树形结构的数据,id为map的key,pid为树形结构的value. import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.uti

随机推荐