这个可以使用递归来实现,具体代码如下:
创新互联从2013年创立,是专业互联网技术服务公司,拥有项目网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元庄浪做网站,已为上家服务,为庄浪各地企业和个人服务,联系电话:13518219792
import java.io.File;
public class Demo {
public static void main(String[] args) {
File file = new File("C:\\");// 指定文件目录
method(file);
}
public static void method(File file) {
File[] fs = file.listFiles();// 得到File数组
if(fs!=null) {// 判断fs是否为null
for(File f : fs) {
if(f.isFile()) {// 如果是文件直接输出
System.out.println(f.getName());
} else {
method(f);// 否则递归调用
}
}
}
}
}
1.遍历本目录下所有的文件(不包括目录的目录里的文件)
import java.io.File;public class main { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍历的路径 File file = new File(path); //获取其file对象 File[] fs = file.listFiles(); //遍历path下的文件和目录,放在File数组中 for(File f:fs){ //遍历File[]数组 if(!f.isDirectory()) //若非目录(即文件),则打印 System.out.println(f); } }}
运行结果:
打印出 D:/JAVA下的全部文件(包括D:/JAVA下的目录下的文件)
1.遍历本目录下所有的文件(包括目录的目录里的文件)
import java.io.File;import java.io.FileFilter;public class FileText { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍历的路径 File file = new File(path); //获取其file对象 func(file); } private static void func(File file){ File[] fs = file.listFiles(); for(File f:fs){ if(f.isDirectory()) //若是目录,则递归打印该目录下的文件 func(f); if(f.isFile()) //若是文件,直接打印 System.out.println(f); } }}
打印结果:
打印所有文件
不太清楚你这个Menu是哪来的类,不过如果上文你的程序能执行的话,说明menu.getChilds()是个集合,应该带有size()的函数。你可以取出menu.getChilds()的大小,再从头到尾遍历它。
int count=menu.getChilds().size();
for(int i=0;icount;i++)
{
showMenu( ((Menu)menu.getChilds().get(i)) , 0 );
//我估计这些children是个list,可以顺序遍历;但也有
//部分可能是set,那样就得用iterator了。
}