我覺得遍歷不是很懂
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,我感覺既然已經(jīng)存在File數(shù)組中,就不會不存在了,這時還包括文件,有子文件的文件夾,空文件夾的情況。這時不論是哪一種都先打印出名字就好了,然后是文件夾的在遞歸(這時不用管是不是空的)。不知道想的對不對。。
2016-07-17
也會有這樣的情況。該目錄下什么都沒有,那么這時返回的數(shù)組長度就是0。那就沒有東西可以打印了啊。
2016-05-17
空文件夾的長度為0,空文件夾再遞歸的時候,file[]數(shù)組長度為0,相當于一個File實例,不過是一個文件夾。先打印出名字,因為數(shù)組中沒存放任何東西,就不會再進行遞歸了。