main函数应该是: public static void main (String[] args)
{
new JavaDir(args[0],args[1]);
}
{
new JavaDir(args[0],args[1]);
}
解决方案 »
- 如何用java.awt实现这个呢?谢谢啦 :)
- Socket问题!!
- 在线等,#####一个简单的问题
- 5。1快要放假了,突然想起了原来的老版主-路人甲,曾经为我解答问题,现在消失了,大家知道它跑拿去了吗?
- 请问有读过<Java编程思想>的朋友:
- 国庆节快乐,散分!!!!!!
- 在用jdk开发的时候如何在指定位置添加一个控件呢?
- 为什么sun网站的jdk1.4.01下载不下来了?
- 自己写了一个测试代码,报错:类WhiteCat是公共的,应在名为WhiteCat.java的文件中声明
- mysql事务隔离级别与spring事务配置
- 请问怎样使滚动条随JTextArea内容增加向下滚动????????
- 项目紧急!jbuilder4如何连接oracle8.0.5
在你的程序里,除非目录名也用txt作扩展名,否则在
files = path.list(new myFilter(extent));
就已经被过滤掉了。
但是实际情况是目录没有被过滤掉阿!
filenameFilter接口里的accept方法里不是有: if(dir.isDirectory())
{
return true;
}实际情况是第一层的目录可以显示出来,但是里面的无论是目录还是文件都不能显示!
why?
import java.io.*;
import java.lang.System;public class JavaDir
{
public static void main (String[] args)
{
new JavaDir("c:\\tools\\NetAnts","");
}
public static int indentLevel = -1;
public JavaDir(String path,String extent)
{
listPath((new File(path)),extent);
}
void listPath(File path,String extent)
{
String files[];
indentLevel++;
files = path.list(new myFilter(extent));
Arrays.sort(files);
for(int i = 0;i < files.length;i++)
{
for(int indent = 0;indent < indentLevel;indent++)
{
System.out.print(" ");
}
System.out.println(files[i]);
File tmp = new File(path.toString()+"\\"+files[i]);
if(tmp.isDirectory())
{
listPath(tmp,extent);
}
}
indentLevel--;
}
}class myFilter implements FilenameFilter
{
private String extensionName;
public myFilter(String extent)
{
this.extensionName = extent;
}
public boolean accept(File dir,String name)
{
if(dir.isDirectory())
{
return true;
}
else
{
return name.endsWith("." + extensionName);
}
}
}
File tmp = new File(files[i]);
改成
File tmp = new File(path,files[i]);
就可以了。