当前位置: 首页 > 面试题库 >

如何仅列出jtree中的非隐藏文件和非系统文件

贺博厚
2023-03-14
问题内容
File f=new File("C:/");
File fList[] = f.listFiles();

当我使用它时,它会列出所有系统文件以及隐藏文件。

当我使用它在jTree中显示时,这会导致 空指针异常

 public void getList(DefaultMutableTreeNode node, File f) {
 if(f.isDirectory()) {
     DefaultMutableTreeNode child = new DefaultMutableTreeNode(f);
     node.add(child);
     File fList[] = f.listFiles();
     for(int i = 0; i  < fList.length; i++)
         getList(child, fList[i]);
     }
}

我应该怎么做才能使其不给出 NullPointerException 并仅在jTree中显示 非隐藏文件和非系统文件


问题答案:

对隐藏文件执行此操作:

File root = new File(yourDirectory);
File[] files = root.listFiles(new FileFilter() {
    @Override
    public boolean accept(File file) {
        return !file.isHidden();
    }
});

这不会返回隐藏文件。

对于系统文件,我认为这是Windows概念,因此File尝试独立于系统的接口可能不支持该文件。但是,您可以使用命令行命令(如果存在)。

或使用@Reimeus的答案。

可能喜欢

    File root = new File("C:\\");

    File[] files = root.listFiles(new FileFilter() {
        @Override
        public boolean accept(File file) {
            Path path = Paths.get(file.getAbsolutePath());
            DosFileAttributes dfa;
            try {
                dfa = Files.readAttributes(path, DosFileAttributes.class);
            } catch (IOException e) {
                // bad practice
                return false;
            }
            return (!dfa.isHidden() && !dfa.isSystem());
        }
    });

DosFileAttributes是Java
7中引入的。



 类似资料:
  • 本文向大家介绍如何使用Python列出Windows中的非隐藏文件和目录?,包括了如何使用Python列出Windows中的非隐藏文件和目录?的使用技巧和注意事项,需要的朋友参考一下 在Unix OS(OSX,Linux等)上,隐藏文件以“。”开头。因此我们可以使用简单的startwith check过滤掉它们。在Windows上,我们需要检查文件属性,然后确定文件是否隐藏。 示例 例如,您可以使

  • 本文向大家介绍PowerShell显示隐藏文件和系统文件的方法,包括了PowerShell显示隐藏文件和系统文件的方法的使用技巧和注意事项,需要的朋友参考一下 在PowerShell中,列出文件的cmdlet是Get-ChildItem,别名为dir。比如我们使用“dir $env:windir”可以显示Windows目录的文件和文件夹。 命令: 输出: 这里,我们来看看Mode属性这一列,一共五

  • 问题内容: 在针对本机平台进行开发时,我可以使用ldd列出所有共享库(.so文件),这些文件是我构建的二进制可执行文件,将在启动时尝试加载。但是在交叉编译时,我不知道如何获取相同的信息。在不正常的binutils工具,像或者,可以一起建立了交叉编译,而是,这是一个神秘的shell脚本,显然只能在本地平台上运行。 因此,使用跨目标binutils工具,是否有任何方法可以获取外部二进制文件的动态链接依

  • Linux 下,名称中第一个字符为 . 的文件或者文件夹,系统会将它们隐藏起来。传统上,这种文件大多是用户的配置文件。 您可以尝试以下操作: cd ~ #进入您的用户目录 ls #查看当前目录下的文件列表 ls -a #查看所有文件的文件列表(包括隐藏文件)。 如果您只想查看隐藏文件,而不包括这两个特殊目录,您可以使用 ls 命令的选项 -A (ls -A) 每个目录下都包含

  • 本文向大家介绍如何使用Python删除隐藏的文件和文件夹?,包括了如何使用Python删除隐藏的文件和文件夹?的使用技巧和注意事项,需要的朋友参考一下 在Unix OS(OSX,Linux等)上,隐藏文件以“。”开头。因此我们可以使用简单的startwith check过滤掉它们。在Windows上,我们需要检查文件属性,然后确定文件/文件夹是否隐藏。 示例 例如,您可以使用以下代码删除所有隐藏文

  • 我实例化了一个Hadoop2.4.1集群,并且发现运行的MapReduce应用程序的并行化程度将不同,这取决于输入数据所在的文件系统类型。 使用HDFS,MapReduce作业将生成足够的容器,以最大限度地利用所有可用内存。例如,一个具有172GB内存的3节点集群,每个map任务分配2GB,将创建大约86个应用程序容器。 在不是HDFS的文件系统上(比如NFS或在我的用例中是并行文件系统),Map