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

前端之家收集整理的这篇文章主要介绍了在java中的file.lists()中排除系统文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 java.io.File中使用方法File.listFiles()获取文件列表,但它返回一些系统文件,如(.sys等)..我需要排除所有系统相关文件( Windows,Linux,Mac)返回列表时.任何人都可以解决我的问题吗?

解决方法

我将实现一个简单的FileFilter,其逻辑用于确定文件是否为系统文件,并以 AlexR showed in his answer的方式使用它的实例.这样的事情(规则a仅用于演示目的!):
  1. public class IgnoreSystemFileFilter implements FileFilter {
  2.  
  3. Set<String> systemFileNames = new HashSet<String>(Arrays.asList("sys","etc"));
  4.  
  5. @Override
  6. public boolean accept(File aFile) {
  7.  
  8. // in my scenario: each hidden file starting with a dot is a "system file"
  9. if (aFile.getName().startsWith(".") && aFile.isHidden()) {
  10. return false;
  11. }
  12.  
  13. // exclude known system files
  14. if (systemFileNames.contains(aFile.getName()) {
  15. return false;
  16. }
  17.  
  18. // more rules / other rules
  19.  
  20. // no rule matched,so this is not a system file
  21. return true;
  22. }

猜你在找的Java相关文章