遍歷是什么意思 JAVA編程題遞歸遍歷D盤下的所有文件夾和文件?
JAVA編程題遞歸遍歷D盤下的所有文件夾和文件?組件esystemimportjava.io.Filepublic文件class Dir{ public static void main(String
JAVA編程題遞歸遍歷D盤下的所有文件夾和文件?
組件esystemimportjava.io.Filepublic文件class Dir{ public static void main(String[]args){ File d=新文件(“d:”) Dir(d) } public static void Dir(File Dir){ if(目錄存在()){ (文件f:目錄文件()){ if(f.isDirectory()){ 系統(tǒng)輸出打?。ā澳夸洠骸眆、 getName()) Dir(f) }其他{ 系統(tǒng)輸出打印(”File:”f.Getname())(T/T/T}(T/T/T}(T/T}(T/T}(T/T}(T/T})(T/T}(T/T}(T/T}(T/T})(T/T}(T/T})(T/T}(T/T})(T/T}(T/T}))可以用dir遞歸調(diào)用,但必須使用一些特殊技能:遍歷文件夾時(shí),如果遇到子文件夾,不應(yīng)立即遞歸調(diào)用它。在遍歷整個(gè)文件夾之后,應(yīng)該先將其存儲(chǔ)在數(shù)組中,然后通過(guò)循環(huán)遞歸調(diào)用數(shù)組中的每個(gè)子文件夾,這樣dir函數(shù)就不會(huì)受到干擾。
Sub ssdir(P as string)dim d()as string,F(xiàn) as string,I as long F=dir(P&;“*)。*“,vbdirectory vbnormal vbarchive vbhidden vbreadonly vbsystem)do until f=”“if(getattr(P&”“&;f)and vbdirectory)<> 0 then”如果它是子文件夾,則ReDim preserve D(I)D(I)=fEnd if f=dir loop for I=0 to UBound(D)ssdir P&;“”&;D(I)“遞歸調(diào)用nexend sub
編寫一個(gè)偽代碼:
procdir(string initdir)//initdir是要處理的目錄{for(initdir中的每個(gè)obj)//對(duì)于initdir目錄中的每個(gè)對(duì)象,無(wú)論是子目錄還是文件,即遍歷initdir中的所有文件或文件夾{if(obj is DIR)//如果對(duì)象是目錄,則調(diào)用procdir處理子目錄procdir(obj)//否則//如果不是子目錄,則打?。╫bj)}對(duì)象