package com.haizhitao.io2;
import java.io.File;
import java.util.ArrayList;
public class ListAllTest
{
//用于判断目录或文件所处的层次
private static int time;
//递归的方法
public static void deepList(File file)
{
if(file.isFile() || file.listFiles().length == 0)
{
return;
}
else
{
File[] files = file.listFiles();
files = sort(files);
for(File f : files)
{
StringBuffer output = new StringBuffer();
if(f.isFile())
{
output.append(getTabs(time));
output.append(f.getName());
}
else
{
output.append(getTabs(time));
output.append(f.getName());
output.append("\\");
}
System.out.println(output);
if(f.isDirectory())
{
time++;
deepList(f);
time--;
}
}
}
}
//整理文件数组,使得目录排在文件之前
private static File[] sort(File[] files)
{
ArrayList<File> sorted = new ArrayList<File>();
//寻找所有的目录
for(File f : files)
{
if(f.isDirectory())
sorted.add(f);
}
//寻找所有的文件
for(File f : files)
{
if(f.isFile())
sorted.add(f);
}
return sorted.toArray(new File[files.length]);
}
//判断需要增加多少个tab的方法
private static String getTabs(int time)
{
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < time; i++)
{
buffer.append("\t");
}
return buffer.toString();
}
public static void main(String[] args)
{
File file = new File("E:\\学习1\\海之涛.JAVA学习\\Java视频教程——张龙\\lesson14.code");
deepList(file);
}
}
//output:
//decorator\
// Client.java
// Component.java
// ConcreteComponent.java
// ConcreteDecorator1.java
// ConcreteDecorator2.java
// Decorator.java
//io\
// Fab.java
// FileTest1.java
// FileTest2.java
// FileTest3.java
// FileTest4.java
// FileTest5.java
// FileTest6.java
// FileTest7.java
// FileTest8.java
// FileTest9.java
// Test1.java
//io2\
// .ListAllTest.java.swp
// BufferedOutputStreamTest1.java
// ByteArrayInputStreamTest1.java
// ByteArrayOutputStreamTest1.java
// CharArrayReader1.java
// CharSet.java
// DataStream1.java
// FileReader1.java
// FileWriter1.java
// InputStreamTest1.java
// ListAllTest.java
// ListAllTest.java~
// MyOwnStream1.java
// MyOwnStream2.java
// OutputStreamTest1.java
// RandomAccessFile1.java
// StreamTest.java
// StreamTest2.java
//Decorator.pdf
//IO_3.pdf
60
最新推荐文章于 2023-11-20 11:44:03 发布