当初在开始接触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. [USACO18JAN]Cow at Large P

    Description: 贝茜被农民们逼进了一个偏僻的农场.农场可视为一棵有 \(N\) 个结点的树,结点分别编号为 \(1,2,\ldots, N\) .每个叶子结点都是出入口.开始时,每个出入口都 ...

  2. C++程序设计方法3:强制类型转换

    强制类型转换(显示转换) dynamic_cast<Dst_Type>(Src_var) Src_var必须是引用或者指针类型,Dst_Type类中含有虚函数,否则会有编译错误: 若目标类 ...

  3. JavaWeb之 JSP:自定义标签的创建和使用

    当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签. 下面我们先来开发一个自定义标签,然后再说它的原理吧! 自定义标签的开发步骤 步骤一 编写一个普通的java类, ...

  4. 4990: [Usaco2017 Feb]Why Did the Cow Cross the Road II 线段树维护dp

    题目 4990: [Usaco2017 Feb]Why Did the Cow Cross the Road II 链接 http://www.lydsy.com/JudgeOnline/proble ...

  5. ionic2 隐藏滚动条

    方法 在全局样式,即app.scss里添加样式: ::-webkit-scrollbar { display: none !important; }

  6. python实现关键词提取

    今天我来弄一个简单的关键词提取的代码 文章内容关键词的提取分为三大步: (1) 分词 (2) 去停用词 (3) 关键词提取 分词方法有很多,我这里就选择常用的结巴jieba分词:去停用词,我用了一个停 ...

  7. Linux之nfs服务

    1.二进制安装nfs 2.作为共享存储挂载在三台web的网站根目录下实现,在任意一台web上修改的结果,其余两台都可以看到 [root@localhost ~]# yum install rpcbin ...

  8. vue事件对象、冒泡、阻止默认行为

    事件对象: <input type="button" name="" value="按钮" @click="show($ev ...

  9. PowerBI发布到网页

    如果网页当中需要嵌入PowerBI的报表,可以在PowerBI当中生成链接,然后网页或者博客当中插入这一段html代码. 以下是PowerBI生产网页链接的示例,并且在博客的最后也插入了PowerBI ...

  10. php读取ini配置文件属性

    ini的内容格式如下,请根据自己的INI,格式修改下段程序. autostart = false font_size = font_color = red =================== fu ...