JAVA输出指定目录下的子目录和子文件
题目:给定一个目录,要求输出这个目录下面的子目录和子文件
逻辑:
- 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误
- 如果是目录,那么使用File.listFile()获得这个目录下文件名的数组
- 循环遍历输出这个数组元素
- 输出名称之后,接着判断这个元素是文件还是目录
- 如果是目录,继续调用本方法来输出子目录
代码如下:
/**
* 输出指定目录下的所有子目录和子文件
*
* @author DXY
*
*/
public class HelloFile {
public static void main(String[] args) {
printFile(new File("D:\\test")); } public static void printFile(File file) {
if (file.isFile()) {
System.out.println("您给定的是一个文件"); // 判断给定目录是否是一个合法的目录,如果不是,输出提示
} else {
File[] fileLists = file.listFiles(); // 如果是目录,获取该目录下的内容集合 for (int i = 0; i < fileLists.length; i++) { // 循环遍历这个集合内容
System.out.println(fileLists[i].getName()); //输出元素名称
if (fileLists[i].isDirectory()) { //判断元素是不是一个目录
printFile(fileLists[i]); //如果是目录,继续调用本方法来输出其子目录
}
}
}
}
}
执行成功,结果正确,但是样子太丑陋了,如图

我们还需要加上缩进改造一下
public class HelloFile {
public static void main(String[] args) {
printFile(new File("D:\\test"),1);
}
public static void printFile(File file,int tab) {
if (file.isFile()) {
System.out.println("您给定的是一个文件"); // 判断给定目录是否是一个合法的目录,如果不是,输出提示
} else {
File[] fileLists = file.listFiles(); // 如果是目录,获取该目录下的内容集合
for (int i = 0; i < fileLists.length; i++) { // 循环遍历这个集合内容
for (int j = 0; j < tab; j++) { //输出缩进
System.out.print("|---");
}
System.out.println(fileLists[i].getName()); //输出元素名称
if (fileLists[i].isDirectory()) { //判断元素是不是一个目录
printFile(fileLists[i],tab+1); //如果是目录,继续调用本方法来输出其子目录,因为是其子目录,所以缩进次数 + 1
}
}
}
}
}
结果为:

JAVA输出指定目录下的子目录和子文件的更多相关文章
- java输出一个目录下的子目录
java输出一个目录下的子目录 package com.vfsd.core; import java.io.File; public class ListDir { public static voi ...
- 33.2 案例:输出指定目录下的所有java文件名(包含子目录)
package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static ...
- Java基础知识强化之IO流笔记14:递归之输出指定目录下所有java文件绝对路径的案例
1. 需求:输出指定目录下的所以.java结尾文件的绝对路径的案例: 分析: A:封装目录 B:获取该目录下的所有文件和文件夹的File数组 C:遍历这个File数组,得到每一个File对象的 ...
- 写一个PHP函数,实现扫描并打印出指定目录下(含子目录)的所有jpg文件名
写一个PHP函数,实现扫描并打印出指定目录下(含子目录)的所有jpg文件名 <?php $dir = "E:\照片\\";//打印文件夹中所有jpg文件 function p ...
- java压缩指定目录下的所有文件和文件夹的代码
将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助. String sourceDir="E:\test";int pa ...
- Java 读取指定目录下的文件名和目录名
需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...
- Python获取指定目录下所有子目录、所有文件名
需求 给出制定目录,通过Python获取指定目录下的所有子目录,所有(子目录下)文件名: 实现 import os def file_name(file_dir): for root, dirs, f ...
- Python列出指定目录下的子目录/文件或者递归列出
1.python只列出当前目录(或者指定目录)下的文件或者目录条目 import os files,dirs=[],[] for item in os.listdir(): if os.path.is ...
- 运维笔记--Linux查找指定目录下某段时间的文件
查找指定目录下,60天之前的文件:find /mnt/xml_data -mtime +60 -name "*.xml" 找到并统计数量:find /mnt/xml_data -m ...
随机推荐
- 深入理解ajax系列第三篇
前面的话 我们接收到的响应主体类型可以是多种形式的,包括字符串String.ArrayBuffer对象.二进制Blob对象.JSON对象.javascirpt文件及表示XML文档的Document对象 ...
- Django-高级特性
分页 1.固定显示分页数目 2.点击相应分页取出对应数据 具体实现: from django.utils.safestring import mark_safe class Pagination(ob ...
- 关于PyCharm database查看db.sqlites文件无内容的一种可能解决方法
初学python,学到了scrapy爬虫数据入库,在网上跟着一个视频课进行学习,但是碰到了如下问题: 这里新建了数据库文件之后,将这个.sqlite文件拖动到Database里面,然后出现了上图描述问 ...
- VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(上)
<[原]关于VC运行时关闭极域电子教室的改进方法> 本文将讲资料和方法,具体实现和破解联想硬盘保护系统密码在(下)中,有关破解联想硬盘保护系统(删除它)的方法很简单,用硬盘保护卡克星就可以 ...
- Codeforces Round #352 (Div. 2) B. Different is Good 水题
B. Different is Good 题目连接: http://www.codeforces.com/contest/672/problem/B Description A wise man to ...
- OPC Server开发的几大境界
OPC server的开发相对OPC client 更加困难,OPC server 的开发主要应用COM技术,主要应用书籍为潘爱民写的<COM入门和应用>,大量的技术有很大的可重用性,在开 ...
- Xsolla和Crytek合作,对游戏战争前线推出全新支付方式
新闻稿: Sherman Oaks, 加州 (美国) –2014年 10月 15日-计费提供商Xsolla今日正式宣布.和著名游戏开发商以及发行商 Crytek.这次合作意味着玩家能够期待大量的游戏内 ...
- Lucene新版本号对ConjunctionScorer的优化
Lucene 4.0版本号的DocIdSetIterator中没有cost方法,而4.7.0则有这种方法,表示遍历整个DocIdSet的代价,对于DocsEnum就是其长度了,对于Scorer就能够是 ...
- wrap ConcurrentDictionary in BlockingCollection
ConcurrentDictionary<int, BlockingCollection<string>> mailBoxes = new ConcurrentDictiona ...
- 跟我一起学extjs5(08--自己定义菜单1)
跟我一起学extjs5(08--自己定义菜单1) 顶部和底部区域已经作好,在顶部区域有一个菜单的button.这一节我们设计一个菜单的数据结构,使其能够展示出不相同式的菜单.因为准备搭建的是一个系统模 ...