简单测试了一把,比较随意哈
public class FileT2
{
static String path = "E:/";
File f = null;
File [] file = null;
static List<String> list_m = new ArrayList<String>();
static List<String> list_f = new ArrayList<String>();
//记录文件个数
int i = 0;
//记录文件夹个数
int j = 0;
public static void main(String[] args) throws Exception
{
FileT2 ft = new FileT2();
ft.getP();
}
/**
*
* @throws InterruptedException
*
* 获取文件夹下面的1级目录,查看进度,出现异常容易定位
*/
public void getP() throws InterruptedException
{
file = new File(path).listFiles();
for(File file_N : file)
{
getN(file_N.getAbsolutePath());
System.out.println("执行完毕,休眠1秒"+file_N.getName()+"---"+file_N.getPath());
Thread.sleep(1000);
}
}
//记录文件查询执行的时间
public void getN(String path)
{
long left = System.currentTimeMillis();
getA(path);
long right = System.currentTimeMillis();
long time = (right - left) / 1000;
pList();
System.out.println("花费时间:"+time+"秒");
}
//第一步,遍历目录
public void getA(String path)
{
file = new File(path).listFiles();
for(File file_N : file)
{
if(file_N.isFile())
{
list_f.add(++j+file_N.getName()+"文件");
}
else if(file_N.isDirectory())
{
list_m.add(++i+file_N.getName()+"文件夹");
//递归调用
getA(file_N.getPath());
}
else
{
System.out.println("--------其他--------"+file_N);
}
}
}
//第二步 输出文件的查询
private static void pList()
{
System.out.println("----------------文件-------------------------------");
for(String s_name : list_f)
{
System.out.println("---"+s_name+"---");
}
System.out.println("----------------文件-------------------------------");
System.out.println("----------------文件夹-------------------------------");
for(String f_name : list_m)
{
System.out.println("---"+f_name+"---");
}System.out.println("----------------文件夹-------------------------------");
}
}