Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当File.listFiles返回null时检索基础错误_Java_File Io - Fatal编程技术网

Java 当File.listFiles返回null时检索基础错误

Java 当File.listFiles返回null时检索基础错误,java,file-io,Java,File Io,根据该方法 如果此抽象路径名不表示目录,或者发生I/O错误,则返回null 我知道我正在使用一个目录,但收到了一个null结果,因此一定出现了I/O错误。我对错误是什么很感兴趣 当返回这样的null结果时,如何检索错误消息/代码?您不能。不幸的是,API没有为您提供一种了解底层I/O错误的方法 另见 File的各种listFiles方法都有以下恼人的特性: 如果发生I/O错误,它们可能返回null 这种行为非常不方便,因为这意味着 我必须有处理IOExceptions的代码(这很好),但我也

根据该方法

如果此抽象路径名不表示目录,或者发生I/O错误,则返回null

我知道我正在使用一个目录,但收到了一个
null
结果,因此一定出现了I/O错误。我对错误是什么很感兴趣


当返回这样的
null
结果时,如何检索错误消息/代码?

您不能。不幸的是,API没有为您提供一种了解底层I/O错误的方法

另见
  • File
    的各种
    listFiles
    方法都有以下恼人的特性: 如果发生I/O错误,它们可能返回
    null

    这种行为非常不方便,因为这意味着 我必须有处理
    IOException
    s的代码(这很好),但我也必须 对结果执行额外的
    null
    检查

    更好的行为是,如果发生I/O错误,则总是出现
    IOException
    被抛出。有时不应使用可分辨返回值来 指示错误,然后在其他时间
    抛出异常
    s

    评估:我们计划在未来几年内解决这一长期存在的问题 新的文件系统API

据我所见,如果

  • 该文件不是目录
  • 文件不存在
  • 该目录受读保护

尽管本机代码中可能会发生I/O错误,但没有“隐藏”IOException的证据。

使用
java.nio.file.DirectoryStream
(在java 7+中),您将获得适当的异常。

将perm设置为文件夹311(或未读取的内容),并且listFiles()将返回null

javadoc没有说明I/O异常,但是发生I/O错误。这表明没有本机错误->异常转换。