版权声明:有一些内容粘贴之后变成图片如果需要原文原视频联系我 QQ:1484632793 备注即可 https://blog.csdn.net/wodemale/article/details/89371966
package io;
import java.io.File;
public class TestFileTree
{
//下面打方法实现树形的输出,按层次决定输出的形状
public static void printfile(File file,int level)
{
//首先输出树形的层次
for(int i=0;i<level;i++)
{
System.out.print("-");
}
//如果是文件输出文件的名字
System.out.println(file.getName());
//如果文件是目录,遍历目录进入递归
if(file.isDirectory())
{
File[] filelist = file.listFiles();//返回一个文件数组
for(File temp : filelist)
{
printfile(temp,level+1);//每多遍历一次增加一次深度
}
}
}
public static void main(String[] args)
{
File file = new File("f:/六级");
//下面的调用的层次是0层
printfile(file,0);
}
}
/////////////////////////////////////////////////////////////////////
下面是方法二:
package io;
import java.io.File;
import java.util.ArrayList;
public class ListAllTest
{
//判读文件目录所处的层次
private static int level;
//递归体
public static void deepList(File file)
{
if(file.isFile() || 0==file.listFiles().length)
{
return ;
}
else
{
File [] files=file.listFiles();
//被排序的文件数组
files=sort(files);
for(File f :files)
{
StringBuffer output=new StringBuffer();
if(f.isFile())
{
output.append(getTabs(level));
output.append(f.getName());
}
else
{
output.append(getTabs(level));
output.append(f.getName());
output.append("DIR");
}
System.out.println(output);
if(f.isDirectory())
{
level++;
deepList(f);
level--;
}
}
}
}
//判读需要加多少tab的方法
private static String getTabs(int time)
{
StringBuffer buffe=new StringBuffer();
for(int i=0;i<time;i++)
{
buffe.append("\t");
}
return buffe.toString();
}
//整理文件数组,目录在文件之前
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]);
}
public static void main(String[] args)
{
File file=new File("F:/vitual");
deepList(file);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
列出目录里面的所有文件
package lee;
import java.io.File;
public class ListFile
{
public static void main(String[] args)
{
File file = new File("F:" + File.separator + "layer");
fun(file);
}
public static void fun(File file)
{
if (file.isDirectory())
{
File[] lf = file.listFiles();
if (lf != null)
{
for (File f : lf)
{
fun(f);
}
}
}
else
{
System.out.println(file.toString());
}
}
}