我覺得遍歷不是很懂
import?java.io.File;
public?class?Example1?{
public?static?void?main(String?args[])?{
Example1?example1?=?new?Example1();
File?file?=?new?File("../Homework");
example1.f(file,?1);
}
//indent是縮進
public?void?f(File?file,?int?indent)?{
if?(!file.exists())
throw?new?IllegalArgumentException("文件"?+?file?+?"不存在");
if?(!file.isDirectory())
throw?new?IllegalArgumentException("文件"?+?file?+?"不是目錄");
File[]?files?=?file.listFiles();
for?(File?fil?:?files)?{
for?(int?i?=?0;?i?<?indent;?i++)?{
System.out.print("|-");
}
System.out.println(fil.getName());
if?(fil.isDirectory())
f(fil,?indent?+?3);
}
}
}看老師的為什么還要file!=null,我感覺既然已經存在File數組中,就不會不存在了,這時還包括文件,有子文件的文件夾,空文件夾的情況。這時不論是哪一種都先打印出名字就好了,然后是文件夾的在遞歸(這時不用管是不是空的)。不知道想的對不對。。
2016-07-17
也會有這樣的情況。該目錄下什么都沒有,那么這時返回的數組長度就是0。那就沒有東西可以打印了啊。
2016-05-17
空文件夾的長度為0,空文件夾再遞歸的時候,file[]數組長度為0,相當于一個File實例,不過是一個文件夾。先打印出名字,因為數組中沒存放任何東西,就不會再進行遞歸了。