import java.io.*;
import java.util.*;
public class VisualDirectory
{
private static int times;
public static void deepList(File file)
{
if(file.isFile()||file.listFiles().length==0)
{
<span style="white-space:pre"> </span>buffer.append(file.getName());
<span style="white-space:pre"> </span>System.out.println(buffer);
<span style="white-space:pre"> </span>return;
}
else
{
File[] files=file.listFiles();
files=VisualDirectory.sort(files);
for(File fil:files)
{
StringBuffer buffer=new StringBuffer();
if(fil.isFile())
{
buffer.append(VisualDirectory.getTabs(times));
buffer.append(fil.getName());
}
else
{
buffer.append(VisualDirectory.getTabs(times));
buffer.append(fil.getName());
System.out.println(buffer);
times++;
VisualDirectory.deepList(fil);
times--;
}
}
}
}
public static File[] sort(File[] files)
{
ArrayList<File> list=new ArrayList<File>();
for(File file:files)
{
if(file.isDirectory())
{
list.add(file);
}
}
for(File file:files)
{
if(file.isFile())
{
list.add(file);
}
}
return list.toArray(new File[files.length]);
}
public static String getTabs(int times)
{
StringBuffer str=new StringBuffer();
for(int i=0;i<times;i++)
{
str.append("\t");
}
return str.toString();
}
public static void main(String args[])
{
File file=new File("c:/MATLAB7");
VisualDirectory.deepList(file);
//System.out.println("\tab");
//System.out.println('\t'+"ab");转义字符可以用字符形式也可以使用字符串形式
}
}