TreeContentProvider仅获取我路径的每个目录 文件过滤器

问题描述

我试图获取我的路径的每个文件夹。 现在我只得到文件夹,但是一旦出现其他文件,它就会给我一个JavaNullPointerException。 我知道它是 listFiles() 的原因,但是我不知道如何使它工作。 有人可以帮我吗?

``

@Override
public Object[] getElements(Object inputElement) {
    return File.listRoots();
}

@Override
public Object getParent(Object element) {
    return ((File) element).getParentFile();
}

@Override
public boolean hasChildren(Object element) {
    Object[] obj = getChildren(element);       
    return obj == null ? false : obj.length > 0;
    
}

@Override
public Object[] getChildren(Object parentElement) {
    
    List<File> files = new ArrayList<>();
        for (File file : ((File) parentElement).listFiles()) {
            if (file.isDirectory()) {
                files.add(file);
            }
        }
    return ((File) parentElement).listFiles();
}

解决方法

如果文件不是目录,则

File.listFiles()返回null。这导致了您的异常。

要仅显示目录,请使用以下内容:

FiberNode

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...