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

标签 java file-io

我正在使用 java.io.File 中的方法 File.listFiles() 获取文件列表,但它返回一些系统文件,如 (.sys etc).. 我需要在返回列表时排除所有系统相关文件(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;
 }

关于java - 在 java 中排除 file.lists() 中的系统文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12897841/

相关文章:

java - 如何转义java中正则表达式模式中的特殊字符?

java - Spring security 中的登录注销用例

c - 如何解析文本输入并将字符串转换为整数?

c - C 文件 I/O 中的段错误

vb.net - 如何从 FileDialog.FileName 返回的路径中删除文件名?

java - Maven:运行程序的生命周期阶段?

java - 为什么布局参数在 Android 编程中起作用?

java - 如何使用 AndroidAnnotation 将大文件从 Android 发送到服务器?

C++:如何将 std::string 的内容写入 UTF-8 编码文件?

PHP:解析包含很长行的文本文件的有效方法是什么?