code: @Override
    public InternalResource[] list(InternalResource resource, final ResourceFilter filter)
      throws IOException
    {
      final List<Resource> resources = new ArrayList<Resource>();
  
      String path = PathUtils.addTrailingSlash(resource.getPath());
  
      if(doList(path, new ResourceFilter()
      {
        @Override
        public boolean accept(Resource resource)
        {
          boolean res = filter.accept(resource);
          if(res)
            resources.add(resource);
          return res;
        }
      }))
      {
        return resources.toArray(new InternalResource[resources.size()]);
      }
      else
        return null;
    }
docs: If this resource denotes a directory, then it will return all resources that are contained in
  the directory.
  
  @param filter the filter to include only some resources in the result
  @return all the resources contained in the directory or <code>null</code> if not a directory
  @throws IOException if there is an error accessing the resource