【发布时间】:2011-12-19 12:09:50
【问题描述】:
我正在使用 java 为 windows 版本的桌面应用程序工作。在我的应用程序中,需要搜索所有 .php
我使用递归方法;
和正则表达式
我的代码:
import java.io.File;
public class Copier {
public static void find(String source,String rep)
{
File src=new File(rep);
if(src.exists() && src.isDirectory())
{
String[] tab=src.list();
for(String s:tab)
{
File srcc=new File(rep+"\\"+s);
if(srcc.isFile())
{
if(srcc.getName().matches(".*"+source+"$"))
System.out.println(s);
}
else
find(source,srcc.getAbsolutePath());
}
}
}
public static void main(String[] args)
{
find(".php","C:\\");
}
}
但我有这个例外:
Exception in thread "main" java.lang.NullPointerException
at Copier.find(Copier.java:11)
at Copier.find(Copier.java:21)
at Copier.main(Copier.java:28)
【问题讨论】:
-
我的猜测是
src.list()返回了一个空值,但我只是在猜测行数。这可能会发生,例如,因为您无权访问该目录。 -
是的,但我访问的是管理员
-
好吧,如果该行是错误的来源,那么由于某种原因,您会收到文件错误。尝试使用
canRead测试位置。
标签: java file exception io nullpointerexception