import java.io.File;public class list { public static void main(String[] args) {
File f=new File("E:"+File.separator+"MQ"); //電腦上MQ文件目錄下是沒有文件的
File ff[]=f.listFiles();
if(ff==null){
System.out.println("文件為空");
}
for(File x:ff){
System.out.println(x);
}
}}
一直搞不懂為什麼f目錄下什麼也沒有,為什麼ff不會為空呢???如果我把new File(這裡設一個文件而不是目錄時)就會執行“文件為空”
File f=new File("E:"+File.separator+"MQ"); //電腦上MQ文件目錄下是沒有文件的
File ff[]=f.listFiles();
if(ff==null){
System.out.println("文件為空");
}
for(File x:ff){
System.out.println(x);
}
}}
一直搞不懂為什麼f目錄下什麼也沒有,為什麼ff不會為空呢???如果我把new File(這裡設一個文件而不是目錄時)就會執行“文件為空”
解决方案 »
- Think In Java 4(完美高清中文版)
- 新手上路,请大家进来帮忙看一个很简单的程序编译不通过的问题。
- Class.forName的作用
- JNI 中调用DefineClass函数出错
- 求《java2图形设计卷二:swing》
- 继承的基础问题
- 为什么我上传文件的时候,如果遇到文件名是中文的,虽然可以上传,但不可以下载,怎么解决?
- mysql启动服务报错的问题,大家帮个忙!!!不胜感激!!!!
- 表单form的action中的post与get是何意义,有什么区别!???
- public成员为什么找不到?头大啊……
- 关于Swing中JTextPane,Document,Style,Element的问题
- 一道ACM题目,求到达18岁生日时所经过的天数,总是WRONG ANSWER
public static void main(String[] args) {
File file=new File("C:"+File.separator);
Lis(file);
}
public static void Lis(File file){
if(file.isDirectory()){
System.out.println(file);
File f[]=file.listFiles();
for(int i=0;i<f.length;i++){
Lis(f[i]);
}
}
else{
System.out.println(file);
}}
}還有就是這個程序為什麼還會有出現空指針報錯呢,大部份沒有事。什麼情況下會出現空指針
要是說new File(裡是一個文件的話)那listFiles出來的ff就為空,要是是個文件夾是不為空,只是length==0
判断一下,没有文件那就是0,怎么可能是null呢
你自己debug分析一下不就知道了
呵呵楼主的焦急心情可以理解。
listFiles()或者listXXX()系列的方法,其实都是通过list()方法来完成的。
而ff.list()方法是否返回null,首先判权限,若权限不够,则返回null。若权限够了,看ff.exists()是否返回true。若ff.exists()返回false,则它返回null。