摘要
本博客主要讲述了使用File类来对文件夹进行统计
递归打印文件名
使用递归实现打印文件夹所有文件(包括文件夹)的所有名字
public class DirDemo03 {
public static void main(String[] args) {
File dir = new File("D:\\Java\\07_授课代码\\07_授课代码\\07_授课代码\\JavaSECode\\src");
printFileName(dir,0);
}
//depth参数控制文件夹的层次关系
private static void printFileName(File file, int depth){
for(int i = 0; i < depth; i ++) System.out.print("-");
System.out.println(file.getName());
if(file != null && file.exists()){
//已经是文件了,也没啥好操作了,直接退出即可
if(file.isFile()) return;
else if(file.isDirectory()){
File[] files = file.listFiles();
//递归体
for(File f : files) printFileName(f,depth + 1);
}
}
}
}
程序输出结果
src
-cn
--sxt
---array2
----TestArrayCopy.java
----TestArrays.java
----TestArrayTableData.java
---collection
----TestList.java
----TestMap.java
----TestTreeMap.java
---test
----PrintFileTree.java
----Test01.java
----Test04.java
----Test05.java
----TestCalendar.java
----Testcalendar2.java
----TestDate.java
----TestDateFormat.java
----TestEnum.java
----TestIterator.java
----TestStoreData2.java
----TestWrappedClass.java
-com
--sxt
---io
----abc.txt
----dest.png
----dest.txt
----DirDemo01.java
----DirDemo02.java
----DirDemo03.java
----FileDemo01.java
----FileDemo02.java
----FileDemo03.java
----FileDemo04.java
----IOTest01.java
----IOTest02.java
----IOTest03.java
----IOTest04.java
-dongge
--CycleArray.java
--ExampleChainingHashMap.java
--ExampleLinearProbingHashMap1.java
--ExampleLinearProbingHashMap2.java
--MyArrayList.java
--MyChainingHashMap1.java
--MyLinearProbingHashMap1.java
--MyLinkedList.java
--MyLinkedList2.java
--SimpleMinPQ.java
-IO.png
-mycollection
--Node.java
--Node2.java
--Node3.java
--SxtArrayList01.java
--SxtArrayList02.java
--SxtArrayList03.java
--SxtArrayList04.java
--SxtArrayList05.java
--SxtHashMap01.java
--SxtHashMap02.java
--SxtHashMap03.java
--SxtLinkedList01.java
--SxtLinkedList02.java
--SxtLinkedList03.java
--SxtLinkedList04.java
--SxtLinkedList05.java
-prj
-Solution.java
-User2.java
-WeightedDigraph.java
递归计算长度
public class DirDemo04 {
public static void main(String[] args) {
File dir = new File("D:\\Java\\07_授课代码\\07_授课代码\\07_授课代码\\JavaSECode\\src");
count(dir);
System.out.println(length);
}
//维护一个全局变量,这个就是最终答案
static int length;
private static void count(File file){
if(file != null && file.exists()){
if(file.isFile()) length += file.length();
else if(file.isDirectory()){
File[] files = file.listFiles();
for(File f : files) count(f);
}
}
}
}