需求一:打印出指定文件夹下的子文件名和子文件夹名
这里贴出我F:\test目录的截图:
代码如下:
//打印指定文件夹下的一级子文件名或者文件夹名
public static void printDir(File file){
//获得file文件夹下面的所有文件名
String[] list = file.list();
for (String fileName : list){
System.out.println(fileName);
}
}
public static void main(String[] args){
File file = new File("F:\\test");
printDir(file);
}
结果为:
新建文件夹
新建文件夹 - 副本
新建文件夹 - 副本 (2)
新建文件夹 - 副本 (3)
新建文本文档 - 副本 (2).txt
新建文本文档 - 副本 (3).txt
新建文本文档 - 副本 (4).txt
新建文本文档 - 副本 (5).txt
新建文本文档 - 副本.txt
新建文本文档.txt
可以看出:默认是先打印文件夹名称,后打印文件名称的。
需求二:打印指定文件夹下面的所有的文件名和文件夹名,要有表现出层次结构
思路:
1.得到给定文件夹下的所有的子文件列表
2.遍历子文件列表
3.判断如果是文件,就打印出文件的名称
4。判断如果是文件夹,打印其文件夹名称,继续得到该文件夹的子文件列表(重复1)
说明:这里的3、4可以合并,因为都是要打印文件名;所以可以下打印文件名,在判断是否
是文件夹
下面是代码:
public static void printDir1(File file,String separator){
//得到file文件夹下面的所有文件
File[] files = file.listFiles();
for (File file1 : files){
System.out.println(separator+file1.getName());
if (file1.isDirectory()){
printDir1(file1,"| "+separator);
}
}
}
public static void main(String[] args){
File file = new File("F:\\test");
printDir1(file,"|-");
}
结果为:
|-新建文件夹
|-新建文件夹 - 副本
| |-新建 WinRAR ZIP 压缩文件 - 副本 (2).zip
| |-新建 WinRAR ZIP 压缩文件 - 副本 (3).zip
| |-新建 WinRAR ZIP 压缩文件 - 副本 (4).zip
| |-新建 WinRAR ZIP 压缩文件 - 副本.zip
| |-新建 WinRAR ZIP 压缩文件.zip
|-新建文件夹 - 副本 (2)
| |-新建 Microsoft Excel 工作表 - 副本 (2).xlsx
| |-新建 Microsoft Excel 工作表 - 副本 (3).xlsx
| |-新建 Microsoft Excel 工作表 - 副本 (4).xlsx
| |-新建 Microsoft Excel 工作表 - 副本 (5).xlsx
| |-新建 Microsoft Excel 工作表 - 副本.xlsx
| |-新建 Microsoft Excel 工作表.xlsx
|-新建文件夹 - 副本 (3)
| |-123
| | |-456
| | | |-新建位图图像 - 副本 (2).bmp
| | | |-新建位图图像 - 副本 (3).bmp
| | | |-新建位图图像 - 副本.bmp
| | | |-新建位图图像.bmp
| | |-新建 Microsoft PowerPoint 演示文稿 - 副本 (2).pptx
| | |-新建 Microsoft PowerPoint 演示文稿 - 副本.pptx
| | |-新建 Microsoft PowerPoint 演示文稿.pptx
| |-新建 Microsoft Word 文档 - 副本 (2).docx
| |-新建 Microsoft Word 文档 - 副本 (3).docx
| |-新建 Microsoft Word 文档 - 副本 (4).docx
| |-新建 Microsoft Word 文档 - 副本 (5).docx
| |-新建 Microsoft Word 文档 - 副本.docx
| |-新建 Microsoft Word 文档.docx
|-新建文本文档 - 副本 (2).txt
|-新建文本文档 - 副本 (3).txt
|-新建文本文档 - 副本 (4).txt
|-新建文本文档 - 副本 (5).txt
|-新建文本文档 - 副本.txt
|-新建文本文档.txt