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