# $files

The `$files` object extends the general `Collection` class and refers to a collection of files, i.e. images, documents etc. Files can be filtered, searched, converted, modified or evaluated with the following methods:

****

- Full class name: `Kirby\Cms\Files`
- Alias: `Files`
- Source: <https://github.com/getkirby/kirby/tree/5.5.3/src/Cms/Files.php#L29>

****

### $files

- [$files->__call()](https://getkirby.com/docs/reference/objects/cms/files/__call.md)
- [new Files()](https://getkirby.com/docs/reference/objects/cms/files/__construct.md)
- [$files->__debugInfo()](https://getkirby.com/docs/reference/objects/cms/files/__debug-info.md)
- [$files->__get()](https://getkirby.com/docs/reference/objects/cms/files/__get.md)
- [$files->__isset()](https://getkirby.com/docs/reference/objects/cms/files/__isset.md)
- [$files->__set()](https://getkirby.com/docs/reference/objects/cms/files/__set.md)
- [$files->__toString()](https://getkirby.com/docs/reference/objects/cms/files/__to-string.md)
- [$files->__unset()](https://getkirby.com/docs/reference/objects/cms/files/__unset.md)
- [$files->add()](https://getkirby.com/docs/reference/objects/cms/files/add.md)
- [$files->append()](https://getkirby.com/docs/reference/objects/cms/files/append.md)
- [$files->changeSort()](https://getkirby.com/docs/reference/objects/cms/files/change-sort.md)
- [$files->chunk()](https://getkirby.com/docs/reference/objects/cms/files/chunk.md)
- [$files->clone()](https://getkirby.com/docs/reference/objects/cms/files/clone.md)
- [$files->count()](https://getkirby.com/docs/reference/objects/cms/files/count.md)
- [$files->current()](https://getkirby.com/docs/reference/objects/cms/files/current.md)
- [$files->data()](https://getkirby.com/docs/reference/objects/cms/files/data.md)
- [$files->delete()](https://getkirby.com/docs/reference/objects/cms/files/delete.md)
- [$files->empty()](https://getkirby.com/docs/reference/objects/cms/files/empty.md)
- [$files->extend()](https://getkirby.com/docs/reference/objects/cms/files/extend.md)
- [Files::factory()](https://getkirby.com/docs/reference/objects/cms/files/factory.md)
- [$files->filter()](https://getkirby.com/docs/reference/objects/cms/files/filter.md)
- [$files->filterBy()](https://getkirby.com/docs/reference/objects/cms/files/filter-by.md)
- [$files->find()](https://getkirby.com/docs/reference/objects/cms/files/find.md)
- [$files->findBy()](https://getkirby.com/docs/reference/objects/cms/files/find-by.md)
- [$files->findByKey()](https://getkirby.com/docs/reference/objects/cms/files/find-by-key.md)
- [$files->first()](https://getkirby.com/docs/reference/objects/cms/files/first.md)
- [$files->flip()](https://getkirby.com/docs/reference/objects/cms/files/flip.md)
- [$files->get()](https://getkirby.com/docs/reference/objects/cms/files/get.md)
- [$files->getAttribute()](https://getkirby.com/docs/reference/objects/cms/files/get-attribute.md)
- [$files->getIterator()](https://getkirby.com/docs/reference/objects/cms/files/get-iterator.md)
- [$files->getMethod()](https://getkirby.com/docs/reference/objects/cms/files/get-method.md)
- [$files->group()](https://getkirby.com/docs/reference/objects/cms/files/group.md)
- [$files->groupBy()](https://getkirby.com/docs/reference/objects/cms/files/group-by.md)
- [$files->has()](https://getkirby.com/docs/reference/objects/cms/files/has.md)
- [$files->hasMethod()](https://getkirby.com/docs/reference/objects/cms/files/has-method.md)
- [$files->indexOf()](https://getkirby.com/docs/reference/objects/cms/files/index-of.md)
- [$files->intersection()](https://getkirby.com/docs/reference/objects/cms/files/intersection.md)
- [$files->intersects()](https://getkirby.com/docs/reference/objects/cms/files/intersects.md)
- [$files->isEmpty()](https://getkirby.com/docs/reference/objects/cms/files/is-empty.md)
- [$files->isEven()](https://getkirby.com/docs/reference/objects/cms/files/is-even.md)
- [$files->isNotEmpty()](https://getkirby.com/docs/reference/objects/cms/files/is-not-empty.md)
- [$files->isOdd()](https://getkirby.com/docs/reference/objects/cms/files/is-odd.md)
- [$files->join()](https://getkirby.com/docs/reference/objects/cms/files/join.md)
- [$files->key()](https://getkirby.com/docs/reference/objects/cms/files/key.md)
- [$files->keyOf()](https://getkirby.com/docs/reference/objects/cms/files/key-of.md)
- [$files->keys()](https://getkirby.com/docs/reference/objects/cms/files/keys.md)
- [$files->last()](https://getkirby.com/docs/reference/objects/cms/files/last.md)
- [$files->limit()](https://getkirby.com/docs/reference/objects/cms/files/limit.md)
- [$files->map()](https://getkirby.com/docs/reference/objects/cms/files/map.md)
- [$files->next()](https://getkirby.com/docs/reference/objects/cms/files/next.md)
- [$files->niceSize()](https://getkirby.com/docs/reference/objects/cms/files/nice-size.md)
- [$files->not()](https://getkirby.com/docs/reference/objects/cms/files/not.md)
- [$files->nth()](https://getkirby.com/docs/reference/objects/cms/files/nth.md)
- [$files->offset()](https://getkirby.com/docs/reference/objects/cms/files/offset.md)
- [$files->paginate()](https://getkirby.com/docs/reference/objects/cms/files/paginate.md)
- [$files->pagination()](https://getkirby.com/docs/reference/objects/cms/files/pagination.md)
- [$files->parent()](https://getkirby.com/docs/reference/objects/cms/files/parent.md)
- [$files->pluck()](https://getkirby.com/docs/reference/objects/cms/files/pluck.md)
- [$files->prepend()](https://getkirby.com/docs/reference/objects/cms/files/prepend.md)
- [$files->prev()](https://getkirby.com/docs/reference/objects/cms/files/prev.md)
- [$files->query()](https://getkirby.com/docs/reference/objects/cms/files/query.md)
- [$files->random()](https://getkirby.com/docs/reference/objects/cms/files/random.md)
- [$files->remove()](https://getkirby.com/docs/reference/objects/cms/files/remove.md)
- [$files->rewind()](https://getkirby.com/docs/reference/objects/cms/files/rewind.md)
- [$files->search()](https://getkirby.com/docs/reference/objects/cms/files/search.md)
- [$files->set()](https://getkirby.com/docs/reference/objects/cms/files/set.md)
- [$files->shuffle()](https://getkirby.com/docs/reference/objects/cms/files/shuffle.md)
- [$files->size()](https://getkirby.com/docs/reference/objects/cms/files/size.md)
- [$files->slice()](https://getkirby.com/docs/reference/objects/cms/files/slice.md)
- [$files->sort()](https://getkirby.com/docs/reference/objects/cms/files/sort.md)
- [Files::sortArgs()](https://getkirby.com/docs/reference/objects/cms/files/sort-args.md)
- [$files->sortBy()](https://getkirby.com/docs/reference/objects/cms/files/sort-by.md)
- [$files->sorted()](https://getkirby.com/docs/reference/objects/cms/files/sorted.md)
- [$files->template()](https://getkirby.com/docs/reference/objects/cms/files/template.md)
- [$files->toArray()](https://getkirby.com/docs/reference/objects/cms/files/to-array.md)
- [$files->toJson()](https://getkirby.com/docs/reference/objects/cms/files/to-json.md)
- [$files->toString()](https://getkirby.com/docs/reference/objects/cms/files/to-string.md)
- [$files->update()](https://getkirby.com/docs/reference/objects/cms/files/update.md)
- [$files->valid()](https://getkirby.com/docs/reference/objects/cms/files/valid.md)
- [$files->values()](https://getkirby.com/docs/reference/objects/cms/files/values.md)
- [$files->when()](https://getkirby.com/docs/reference/objects/cms/files/when.md)
- [$files->without()](https://getkirby.com/docs/reference/objects/cms/files/without.md)

You can extend this set of methods with <a href="https://getkirby.com/docs/reference/plugins/extensions/files-methods">custom files methods</a>.

## How to get a `$files` object

Before you can use the methods of the `$files` class, you need a `$files` object. To get a files object, you fetch the files you need from the `$site`, `$page` or `$user` object:

<info>
Note that the default sorting order of files is according to their order in the file system. To sort files by their manual sorting order, you can use `$files->sortBy('sort')`, where `sort` is the field that stores the sorting number if you manually sort files in the Panel.
</info>

### Site files

```php
$files = $site->files();
```

### Page files

```php
$files = $page->files();
```

### User files

```php
$files = $user->files();
```

## Examples

With the `$files` object defined, you can now do all sorts of things:

### Filter files

```php
$filteredFiles = $files->filterBy('template', 'cover');
```

### Group files

```php
$groupedFiles = $files->groupBy('template');
```

### Get the first file of the collection

```php
$firstFile = $files->first();
```

### Only get three files

```php
$files = $files->limit(3);
```