public class traverse {
public static void tra(File path){
if(path == null){
return;
}
if(path.isDirectory()){
String[] files = path.list();
for(int i = 0; i < files.length;i++){
tra(new File(path,files[i]));
}
}else{
if(path.getAbsolutePath().endsWith(".exe"))
System.out.println(path);
}
}
public static void main(String[] args) {
try{
File file = new File("D:\\");
tra(file);
}catch(Exception e){
e.printStackTrace();
}
}}老是抛出异常
java.lang.NullPointerException;
请问这是为什么啊
public static void tra(File path){
if(path == null){
return;
}
if(path.isDirectory()){
String[] files = path.list();
for(int i = 0; i < files.length;i++){
tra(new File(path,files[i]));
}
}else{
if(path.getAbsolutePath().endsWith(".exe"))
System.out.println(path);
}
}
public static void main(String[] args) {
try{
File file = new File("D:\\");
tra(file);
}catch(Exception e){
e.printStackTrace();
}
}}老是抛出异常
java.lang.NullPointerException;
请问这是为什么啊
解决方案 »
- int float精度和范围
- Runtime.getRuntime().exec("D:\\reader.exe"),怎样让执行的控制台程序可见
- 同一个project能同时连1个UDB,和2个sqlserver2005的数据源吗?
- JFrame界面如何布局使得组件随着界面大小进行改变啊?
- java中如何从键盘输入字符且不用回车???急
- 一个访问sqlserver2000得奇怪问题
- 前些天去用友面试的部分题,大家分享下
- 请问怎么解决剩下的问题
- 大家能帮我解决这几个问题吗?请进 ...
- ACM一道题老提示RuntimeError
- 关于HashSet数组的比较
- 用myeclipse向server中输入中文
File[] files = file.listFiles();
for (File file2 : files) {getFileName(file2);}
}
if (file.isFile()) {
System.out.println(file.getName());
return;
}}
你的递归逻辑有问题。
在里面加个判空,然后再修改逻辑。
if(files != null && files.length > 0))
否则,
String[] files = path.list();
for(int i = 0; i < files.length;i++){
tra(new File(path,files[i]));
}当files = null时候,
下面循环必然报空指针。