java - 检查文件夹是否为空且没有引用问题

标签 java dereference

下面的代码对从目录读取的文件数组进行排序。唯一的问题是,如果文件夹为空,则会出现空指针异常。我尝试了几种不同的方法,首先检查文件夹是否为空,然后执行下面的代码,但它们都使用了 if 语句,使该代码超出了范围。有没有办法检查目录是否为空以及是否跳过此代码?

//sort array listOfFiles by time (oldest to newest)
    File folder = new File(dbBackupLocation + "/" + dbHost);
    File[] listOfFiles = folder.listFiles();
    Arrays.sort(listOfFiles, new Comparator<File>() {
        @Override
                    public int compare(File f1, File f2) {
            return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
        }
    });

编辑:NullPointerException 在线 Arrays.sort(listOfFiles, new Comparator<File>() {

我使用了 Elliott Frisch 代码:

File folder = new File(dbBackupLocation + "/" + dbHost);
    File[] listOfFiles = folder.listFiles();
    if (listOfFiles != null && listOfFiles.length > 0) {
        // The array isn't empty.
        Arrays.sort(listOfFiles, new Comparator<File>() {
            @Override
            public int compare(File f1, File f2) {
                return Long.valueOf(f1.lastModified())
                        .compareTo(f2.lastModified());
            }
        });
    }

但是当我尝试使用 listOfFiles 时,例如: for(File s : listOfFiles) { i++; }我显然正在取消引用它?

最佳答案

如果我理解你的话,你想要类似的东西

File folder = new File(dbBackupLocation + "/" + dbHost);
File[] listOfFiles = folder.listFiles();
if (listOfFiles != null && listOfFiles.length > 0) {
  // The array isn't empty.
  Arrays.sort(listOfFiles, new Comparator<File>() {
    @Override
    public int compare(File f1, File f2) {
      return Long.valueOf(f1.lastModified())
          .compareTo(f2.lastModified());
    }
  });
}

关于java - 检查文件夹是否为空且没有引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043935/

相关文章:

c++ - 指向根的二叉树指针需要被引用和取消引用。为什么?

java - 如何将逗号分隔的字符串转换为列表?

javascript - 在 jQuery 中实现安全取消引用?

java - Spring 的 JdbcTemplate 是否在查询超时后关闭连接?

java - 使用 jpathwatch 找出程序何时完成写入文件

c++ - 迭代器取消引用

c++ - 使用 bool 作为左值

c++ - 将 char 地址分配给 int 指针,然后写入 int 大小的内存块

java - 从输入流读取

java - 是否有类似于 Java 的 mini-mvc-profiler 的东西?