天天看点

列出目录下的所有文件名,带层次

public class FileDemo {

   public static void main(String[] args) {

 File dir=new File("G:\\360驱动大师目录");

 showDir(dir,0);

 

 }

   //打印目录下第一级内容

   public static void  listDemo(){

 File f=new File("c:\\");

 String[] names=f.list();//调用list方法的对象必须是目录

 for(String name:names){

 System.out.println(name);

 }

   }

   

   //获取系统磁盘名称

   public static void listRootsDemo(){

 File[] files=File.listRoots();//获取盘符

 for(File f:files){

 System.out.println(f);

 }



   }

   //过滤方式获取文件

   public static void listDemo_2(){

 File dir=new File("F:\\SVN_D\\DD\\src\\com\\ygl");

   String[]  arr=dir.list(new FilenameFilter(){



@Override

public boolean accept(File dir, String name) {

// TODO Auto-generated method stub

/*if(name.endsWith(".java")){

return true;

}

else{

return false;

}*/

return name.endsWith(".java");


}

   
 

   
 

   
 

   });

   System.out.println(arr.length);

   for(String name:arr){

   
 System.out.println(name);

   }

   }

   //listFiles()获取当前目录名称对象

       public static void listFiles_Demo(){

 File dir=new File("G:\\");

File[] files=dir.listFiles();//当前目录下内容

for(File f:files){

System.out.println(f.getName());//文件名,不带路径

}

   }

   

       //列出目录下的所有文件,带层次

       public static void showDir(File dir,int level){

     
 //System.out.println(getLevel(level)+dir.getName());

     


     
 if(dir!=null){

     
if(!dir.isHidden()&&dir.isDirectory()){

     
System.out.println(getLevel(level)+dir.getName());

     
 level++;

     
File[] files=dir.listFiles();

     
if(files!=null){

     
for(int i=0;i<files.length;i++){

     
showDir(files[i],level);

     
}

     
}

     
}else{

     
System.out.println(getLevel(level)+dir);

     
}

          }

     }

       public static String getLevel(int level){

     
 

     
 StringBuilder sb=new StringBuilder();

     
 sb.append("|--");

     
 for(int x=0;x<level;x++){

     
 sb.insert(0,"   ");

     
 

     
 }

     
 return sb.toString();

       }



       }