加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在java中的file.lists()中排除系统文件

发布时间:2020-12-15 01:01:49 所属栏目:Java 来源:网络整理
导读:我在 java.io.File中使用方法File.listFiles()获取文件列表,但它返回一些系统文件,如(.sys等)..我需要排除所有系统相关文件( Windows,Linux,Mac)返回列表时.任何人都可以解决我的问题吗? 解决方法 我将实现一个简单的FileFilter,其逻辑用于确定文件是否为系
我在 java.io.File中使用方法File.listFiles()获取文件列表,但它返回一些系统文件,如(.sys等)..我需要排除所有系统相关文件( Windows,Linux,Mac)返回列表时.任何人都可以解决我的问题吗?

解决方法

我将实现一个简单的FileFilter,其逻辑用于确定文件是否为系统文件,并以 AlexR showed in his answer的方式使用它的实例.这样的事情(规则a仅用于演示目的!):
public class IgnoreSystemFileFilter implements FileFilter {

   Set<String> systemFileNames = new HashSet<String>(Arrays.asList("sys","etc"));

   @Override
   public boolean accept(File aFile) {

     // in my scenario: each hidden file starting with a dot is a "system file"
     if (aFile.getName().startsWith(".") && aFile.isHidden()) {
       return false;
     }

     // exclude known system files
     if (systemFileNames.contains(aFile.getName()) {
       return false;
     }

     // more rules / other rules

     // no rule matched,so this is not a system file
     return true;
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读