通过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:\ ...
随机推荐
- layUI模块化框架
layUI的API 文档 https://www.layui.com/doc/element/progress.html API文档中有许多demo 以及相关属性的详细介绍
- C/JS_实现冒泡排序
冒泡排序算法的运作如下:(从后往前) 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所 ...
- 虚拟串口VSPD破解版 亲测win10 64可用
虚拟串口VSPD破解版 亲测win10 64可用 点击下载
- Git 和 Repo常用命令
这篇博客总结的也不错: git常用及进阶命令总结 Git与Repo入门 一.初始環境配置 git config --global user.name "John Doe"git c ...
- USE " cc.exports.* = value " INSTEAD OF SET GLOBAL VARIABLE"
Cocos2d-x 3.5的lua项目生成后,变成了MVC模式,并且,加入了一个全局变量的检测功能.也就是说,你不小心用了全局变量,他会提示你出错! 比如 local temp = 1 temp = ...
- C# Task WhenAny和WhenAll 以及TaskFactory 的ContinueWhenAny和ContinueWhenAll的实现
个人感觉Task 的WaitAny和WhenAny以及TaskFactory 的ContinueWhenAny有相似的地方,而WaitAll和WhenAll以及TaskFactory 的Continu ...
- 用SSH登录远程的机器,在远程机器上执行本地机器上的脚本
假设本地的机器IP为10.245.111.90,我们想要在10.245.111.93上执行一个保存在10.245.111.90上的脚本. 经过测试通过的命令如下: ssh root@10.245.11 ...
- linux:gpg加密和解密
http://www.bubuko.com/infodetail-650747.html
- 禅道docker
64位电脑安装禅道,满足发送邮件功能 第一步: docker ps 查看docker中的容器是否有禅道(docker ps -a 这个指令看的是所有容器,包括未运行的)ps:登录服务器这个步骤没 ...
- Android BLE蓝牙详细解读
代码地址如下:http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能家 ...