检索名称具有相同扩展名的文件数

时间:2013-09-23 05:24:23

标签: java collections deserialization fileinputstream file-search

我有一个文件夹用户里面我有这么多文件具有相同的扩展名。 我想找到所有用户文件名,其查询是过滤器。

在下面的代码中,我如何检索所有等于查询过滤器的文件。

  public Collection<User> findUsers(String filter) {

     List<User> filteredList = new ArrayList<User>();
     try {
        FileInputStream fileInputStream = new FileInputStream( "Path of file" );
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        Object object = objectInputStream.readObject();   

        while (object.equals(filter)) {
           filteredList.add((User)object);
           object = objectInputStream.readObject();
        }
        objectInputStream.close();
      }
      catch(Exception ioEx){
             //..............   
      }
   }
   return filteredList;
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

第1步: 获取文件名

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

第2步:在某些集合对象中存储名称 第3步:遍历集合对象并找到您想要的任何过滤器

现在,您的问题是创建这样的过滤器吗?

答案 1 :(得分:0)

以下是帮助您的小片段:

File folder = new File("/Users/you/folder/");
File[] listOfFiles = folder.listFiles();
List<String> filteredList = new ArrayList<String>();

for (File file : listOfFiles) {
    // Be aware that folder.listFiles() give list with directories and files
    if (file.isFile()) {
        System.out.println(file.getName());

        // apply your filter. for simplicity I am equating the file names
        // name refers to input variable to method
        if(file.getName().toLowerCase().contains(name.toLowerCase())) { 
            // create user object and add it to list. 
            // Change below line with appropriate constructor params
            filteredList.add(file.getName())
        }
    }
}