通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
当初在开始接触Java时 学习File部分的一个小练习 挺有意思
一开始是通过看 北京圣思园 张龙老师的视频开始学校java的,必须强烈推荐,真很棒。
功能实现:主要实现以树形方式展现出该目录中的所有子目录和文件。 另外, 在展现的时候将目录排在上面,文件排在下面。每一层要加上缩进。 文件是jre6文件夹,我想这文件夹就不用我说什么了。换上自己的文件路径就可以了。
- import java.io.File;
- public class FileTest2
- {
- public static int count = 0;
- public static void parse(File[] files)
- {
- if(files.length == 0)
- {
- FileTest2.count--;
- System.out.println();
- return;
- }
- else
- {
- for(File f : files)
- {
- if(f.isDirectory())
- {
- FileTest2.count++;
- for(int i = 1; i <= FileTest2.count; i++)
- {
- System.out.print("\t");
- }
- System.out.println(f.getName());
- File[] files2 = f.listFiles();
- FileTest2.parse(files2);
- }
- }
- for(File f : files)
- {
- if(!f.isDirectory())
- {
- for(int i = 0; i <= FileTest2.count; i++)
- {
- System.out.print("\t");
- }
- System.out.println(f.getName());
- }
- }
- FileTest2.count--;
- }
- }
- public static void main(String[] args)
- {
- File file = new File("C:\\Program Files\\Java\\jre6");
- File[] files = file.listFiles();
- FileTest2.parse(files);
- }
- }
- **************************第二种****************************************
1 /*
2 使用递归找出某目录("C:\\JavaProducts")下的所有子目录以及子文件
3 */
4
5 import java.util.*;
6 import java.io.*;
7
8 public class FileRecursionPrintDemo{
9 public static void main(String[] args){
10 List<String> paths = new ArrayList<String>();
11 paths = getAllFilePaths(new File("C:\\JavaProducts"),paths);
12 for(String path:paths){
13 System.out.println(path);
14 }
15 }
16
17 private static List<String> getAllFilePaths(File filePath,List<String> filePaths){
18 File[] files = filePath.listFiles();
19 if(files == null){
20 return filePaths;
21 }
22 for(File f:files){
23 if(f.isDirectory()){
24 filePaths.add(f.getPath());
25 getAllFilePaths(f,filePaths);
26 }else{
27 filePaths.add(f.getPath());
28 }
29 }
30 return filePaths;
31 }
32 }
通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件的更多相关文章
- Java使用递归找出某目录下的所有子目录以及子文件
/* 使用递归找出某目录("C:\\JavaProducts")下的所有子目录以及子文件 */ import java.util.*; import java.io.*; publ ...
- Java递归应用:输出树形菜单
转自:https://blog.csdn.net/zhangzeyuaaa/article/details/24574769
- VC/MFC 下 递归遍历目录下的所有子目录及文件
在MFC下要实现文件夹的递归遍历,可用CFileFind类,依次读取文件夹下的子文件夹和文件,并判断通过判断是文件夹还是文件来决定递归遍历.递归遍历代码如下: /******************* ...
- Java编程思想(前十章)
Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ...
- Python算法——递归思想
编程语言在构建程序时的基本操作有:内置数据类型操作.选择.循环.函数调用等,递归实际属于函数调用的一种特殊情况(函数调用自身),其数学基础是数学归纳法.递归在计算机程序设计中非常重要,是许多高级算法实 ...
- Java编程思想 4th 第2章 一切都是对象
Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...
- Java:多线程概述与创建方式
目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ...
- 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类
---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...
- Python正则匹配递归获得给出目录下的特定类型的文件小技巧
需求是酱的: 输入一个目录,这个目录包含检测目录的必备信息但不准确需要获得后加工一下,如给出目录:C:\Program Files\Common Files\DESIGNER,需要检测的目录是:C:\ ...
随机推荐
- [模板][P4782]2-SAT
Description: 有n个布尔变量\(x_1\)~\(x_n\),另有m个需要满足的条件,每个条件的形式都是"\(x_i\)为true/false或\(x_j\)为true/false ...
- [c++] opencv加载png
1.cvloadimage载入png文件时,默认的第2个参数是1,即CV_LOAD_IMAGE_COLOR,生成的iplimage对象的channel数是3,而不是4,丢失了第4通道.需要改为cvlo ...
- BZOJ1889 : Maximal
二分答案,判断是否存在合法方案使得每个数都不超过$mid$. 考虑网络流建图: $i$点的流量下限为$\max(a_i-mid,0)$,费用为$1$,故拆点进行限制. $i$向$i+1$.$S$向$i ...
- Hadoop2之NameNode HA详解
在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNode,但是它并不是NameN ...
- jmeter接口测试实例1-添加学生信息
jmeter实例1:添加学生信息 进入jmeter,添加线程组改名称为添加学生信息(为了好区分接口),添加http请求,输入IP,方法,路径,在body data中输入json串,同上面postman ...
- Alpha冲刺(2/10)——2019.4.25
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(2/10)--2019.4.25 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...
- HTML5 学习02——新元素:canvas
HTML5 Canvas <canvas>标签:使用脚本 (通常是JavaScript)来绘制图形——默认情况下 <canvas> 元素没有边框和内容. 在画布上(Canvas ...
- java static learning
/*static learning */ class one { public int a = 5; static { // 类加载时就运行代码码 System.out.println("s ...
- Android CollapsingToolbarLayout使用介绍
我非常喜欢Material Design里折叠工具栏的效果,bilibili Android客户端视频详情页就是采用的这种设计.这篇文章的第二部分我们就通过简单的模仿bilibili视频详情页的实现来 ...
- nltk 的分词器punkt: ssl问题无法下载
报错: LookupError: ********************************************************************** Resource pu ...