这是用递归将目录中的文件打印出来
- package test;
- import java.io.*;
- import java.util.*;
- public class test3 {
- public static void main(String[] args ) throws IOException{
- //listDemo("testdir");
- //建立一个File对象,装有一个地址
- File a =new File("d:\\testdir");
- //将File对象和目录级数传入到该函数
- listFilesDemo(0, a);
- }
- public static void listFilesDemo( int level,File a){
- //File f = new File("d:"+File.separator+a);
- //先打印总目录
- sop(getLevel(level)+a.getName());
- level++;
- //获取该目录下的文件名
- File[] names = a.listFiles();
- for (int i = 0; i < names.length; i++) {
- //判断是否是目录
- if (names[i].isDirectory()) {
- //是目录的话,则传到该该方法,继续迭代
- listFilesDemo(level,names[i]);
- //当迭代完成后,从里到外打印文件
- sop(getLevel(level)+names[i]);
- }
- else{
- //不是目录,则打印
- sop(getLevel(level)+names[i]);
- }
- }
- }
- public static String getLevel(int level){
- //建立一个字符串缓存区
- StringBuilder sb = new StringBuilder();
- sb.append("|---");
- for (int i = 0; i < level; i++) {
- //sb.append("|---");
- //每进入一级目录,则多加一个“ ”
- sb.insert(0, " ");
- }
- //将其按字符串形式返回
- return sb.toString();
- }
- public static void sop(Object obj){
- System.out.println(obj);
- }
- }
复制代码
|
|