文件目录查询
利用file类中的listFiles()方法,返回一个file数组。已经利用一个递归搜索结合用isDirectory()做临界点。可以进入多级目录查询,然后利用一个StringBuilder里的append方法得到文件目录返回它的tostring函数即返回文件目录名。这里用StringBuilder的append方法是因为如果用string+=的话会耗内存。而这种方法更快,但是不适用于多线程,如果需要这样的同步,则建议使用 StringBuffer。效果如图所示:
实现代码如下:
package cn.hncu.io3;
import java.io.File;
public class ShowDir2 {
public static void main(String[] args) {
File dir=new File("e:/bcde");
showDir(dir,0);
}
private static void showDir(File dir,int count) {
System.out.println(getSpace(count)+dir.getName());
count++;
File files[]=dir.listFiles();
if(files!=null){
for(File f:files){
if(f.isDirectory()){
showDir(f,count);
}else{
System.out.println(getSpace(count)+f.getName());
}
}
}
}
private static String getSpace(int count) {
StringBuilder sb=new StringBuilder();
for (int i = 0; i < count; i++) {
sb.append("|--");//用sb+= 耗内存,这种追加好一点
}
return sb.toString();
}
}