-3

当我尝试执行此代码时会抛出"main" java.lang.NullPointerException. 我正在使用 Netbeans 7.3 和 Windows 7。

public class Inet {

    public static void main(String[] args) {

        File directorio = new File("C:\\");
        listarDirectorio(directorio);
    }

    public static void listarDirectorio(File directorio) {
        File[] ficheros = directorio.listFiles();

        for (int x = 0; x < ficheros.length; x++) {
            if (ficheros[x].isDirectory()) {
                listarDirectorio(ficheros[x]);
            } else {
                System.out.println(ficheros[x].getAbsolutePath() + ficheros[x].getName());
            }
        }
    }
}
4

2 回答 2

2

基本答案可能是,如果摘要不是有效路径,File#listFiles则可以返回......nullFile

如果您尝试遵循一个.lnk或特殊的文件夹,例如My Music

null在处理列表之前尝试检查结果...

File[] ficheros = directorio.listFiles();
if (ficheros != null && ficheros.length > 0) {...
于 2013-09-16T02:44:00.587 回答
1

你得到NullPointerException 异常。

这意味着代码中的其他一些地方null是返回。你不能继续使用空值。

在你的代码中。

File[] ficheros = directorio.listFiles();

你在这里得到(If directory is not found or other reason.)

所以你必须要求检查机制,比如

ficheros != null 或者 ficheros.length != 0

if (ficheros != null && ficheros.length != 0) {
//your code here
}
于 2013-09-16T04:36:57.847 回答