当初在开始接触Java时  学习File部分的一个小练习  挺有意思

一开始是通过看 北京圣思园 张龙老师的视频开始学校java的,必须强烈推荐,真很棒。

功能实现:主要实现以树形方式展现出该目录中的所有子目录和文件。 另外, 在展现的时候将目录排在上面,文件排在下面。每一层要加上缩进。 文件是jre6文件夹,我想这文件夹就不用我说什么了。换上自己的文件路径就可以了。

  1. import java.io.File;
  2. public class FileTest2
  3. {
  4. public static int count = 0;
  5. public static void parse(File[] files)
  6. {
  7. if(files.length == 0)
  8. {
  9. FileTest2.count--;
  10. System.out.println();
  11. return;
  12. }
  13. else
  14. {
  15. for(File f : files)
  16. {
  17. if(f.isDirectory())
  18. {
  19. FileTest2.count++;
  20. for(int i = 1; i <= FileTest2.count; i++)
  21. {
  22. System.out.print("\t");
  23. }
  24. System.out.println(f.getName());
  25. File[] files2 = f.listFiles();
  26. FileTest2.parse(files2);
  27. }
  28. }
  29. for(File f : files)
  30. {
  31. if(!f.isDirectory())
  32. {
  33. for(int i = 0; i <= FileTest2.count; i++)
  34. {
  35. System.out.print("\t");
  36. }
  37. System.out.println(f.getName());
  38. }
  39. }
  40. FileTest2.count--;
  41. }
  42. }
  43. public static void main(String[] args)
  44. {
  45. File file = new File("C:\\Program Files\\Java\\jre6");
  46. File[] files = file.listFiles();
  47. FileTest2.parse(files);
  48. }
  49. }
  50. **************************第二种****************************************
  51.  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递归思想实现以树形方式展现出该目录中的所有子目录和文件的更多相关文章

  1. Java使用递归找出某目录下的所有子目录以及子文件

    /* 使用递归找出某目录("C:\\JavaProducts")下的所有子目录以及子文件 */ import java.util.*; import java.io.*; publ ...

  2. Java递归应用:输出树形菜单

    转自:https://blog.csdn.net/zhangzeyuaaa/article/details/24574769

  3. VC/MFC 下 递归遍历目录下的所有子目录及文件

    在MFC下要实现文件夹的递归遍历,可用CFileFind类,依次读取文件夹下的子文件夹和文件,并判断通过判断是文件夹还是文件来决定递归遍历.递归遍历代码如下: /******************* ...

  4. Java编程思想(前十章)

    Java编程思想 有C++编程基础的条件下, 前10章可以快速过一下,都是基本语法,不需要花太多时间. 着重中后段的一些章节,类型信息.泛型.容器.IO.并发等. 中文翻译版 阅读地址 对于一个架构师 ...

  5. Python算法——递归思想

    编程语言在构建程序时的基本操作有:内置数据类型操作.选择.循环.函数调用等,递归实际属于函数调用的一种特殊情况(函数调用自身),其数学基础是数学归纳法.递归在计算机程序设计中非常重要,是许多高级算法实 ...

  6. Java编程思想 4th 第2章 一切都是对象

    Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...

  7. Java:多线程概述与创建方式

    目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ...

  8. 黑马程序员——【Java基础】——File类、Properties集合、IO包中的其他类

    ---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或 ...

  9. Python正则匹配递归获得给出目录下的特定类型的文件小技巧

    需求是酱的: 输入一个目录,这个目录包含检测目录的必备信息但不准确需要获得后加工一下,如给出目录:C:\Program Files\Common Files\DESIGNER,需要检测的目录是:C:\ ...

随机推荐

  1. sql需注意事项

    sql语句中String类型数据一定需要加引号,浏览器的访问一定不能加引号,

  2. 命令行添加subl命令

    添加了此命令后可以使用subl加文件或路径,就能通过命令行使用sublime text打开相应的文件或目录. 这里我的是MacOS,windows系统换路径就好. 第一步 sudo ln -s /Ap ...

  3. C#异步Task编程模型实战手册

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  4. 5月25号开学! 第13期《python3自动化测试selenium+接口》课程,python零基础也能学

    2019年 第13期<python3自动化测试selenium+接口>课程,5月25号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学 本期上课时间:5月25号-7月28号,每周 ...

  5. golang 对slice的深拷贝 copy

    测试 slice的地址 copy的时候 发现有问题: package main import "fmt" func main() { nums:=[]int{1,2,3,4,5} ...

  6. srs2.0安装问题

    原文: https://blog.csdn.net/ddr77/article/details/52511340 编译配置如下 ./configure --disable-all --with-ssl ...

  7. node-cache

    From: https://www.npmjs.com/package/node-cache Simple and fast NodeJS internal caching. A simple cac ...

  8. 虚拟主机连接FTP发送"AUTH TLS"命令后提示“无法连接到服务器”

    https://help.aliyun.com/knowledge_detail/36417.html?spm=5176.11065259.1996646101.searchclickresult.7 ...

  9. CentOS7本地安装MySQL5.7

    操作系统:3.10.0-514.el7.x86_64 安装包:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz 1:检查是否安装了 libaio(centos7默认 ...

  10. android编码学习

    虽然以下博客有点老,但很清晰,有不明白的基础知识,可以来这里找找. 2015年最新Android基础入门教程目录(完结版) 1. 环境配置 Android stodio gradle配置踩过的坑 An ...