# `nupp.io.files.messages`
## Types
### `Capabilities` _record_
```nupp
record Capabilities ...
```
The exact filesystem guarantees supplied by one provider.
#### Members
| Name | Kind | Description |
| --- | --- | --- |
| [`available`](#nupp.io.files.messages.Capabilities.available) | field | Whether filesystem access is available at all. |
| [`arbitraryPaths`](#nupp.io.files.messages.Capabilities.arbitraryPaths) | field | Whether ordinary native paths are accepted. |
| [`symbolicLinks`](#nupp.io.files.messages.Capabilities.symbolicLinks) | field | Whether symbolic links can be queried and created. |
| [`readOnlyAttributes`](#nupp.io.files.messages.Capabilities.readOnlyAttributes) | field | Whether read-only attributes can be changed. |
| [`glob`](#nupp.io.files.messages.Capabilities.glob) | field | Whether filesystem globbing is supported. |
| [`rename`](#nupp.io.files.messages.Capabilities.rename) | field | Whether paths can be renamed. |
| [`atomicWrite`](#nupp.io.files.messages.Capabilities.atomicWrite) | field | Whether atomic replacement writes are supported. |
| [`temporaryPaths`](#nupp.io.files.messages.Capabilities.temporaryPaths) | field | Whether temporary path owners can be created. |
| [`concurrentOpenHandles`](#nupp.io.files.messages.Capabilities.concurrentOpenHandles) | field | Whether one path may have multiple open handles. |
| [`currentDirectory`](#nupp.io.files.messages.Capabilities.currentDirectory) | field | Whether a process working directory exists. |
| [`userFolders`](#nupp.io.files.messages.Capabilities.userFolders) | field | Whether conventional user folders can be resolved. |
| [`executableDirectory`](#nupp.io.files.messages.Capabilities.executableDirectory) | field | Whether the running executable's directory can be resolved. |
| [`persistentStorageRequest`](#nupp.io.files.messages.Capabilities.persistentStorageRequest) | field | Whether persistent browser storage can be requested. |
#### `available` _field_
```nupp
available: boolean
```
Whether filesystem access is available at all.
#### `arbitraryPaths` _field_
```nupp
arbitraryPaths: boolean
```
Whether ordinary native paths are accepted.
#### `symbolicLinks` _field_
```nupp
symbolicLinks: boolean
```
Whether symbolic links can be queried and created.
#### `readOnlyAttributes` _field_
```nupp
readOnlyAttributes: boolean
```
Whether read-only attributes can be changed.
#### `glob` _field_
```nupp
glob: boolean
```
Whether filesystem globbing is supported.
#### `rename` _field_
```nupp
rename: boolean
```
Whether paths can be renamed.
#### `atomicWrite` _field_
```nupp
atomicWrite: boolean
```
Whether atomic replacement writes are supported.
#### `temporaryPaths` _field_
```nupp
temporaryPaths: boolean
```
Whether temporary path owners can be created.
#### `concurrentOpenHandles` _field_
```nupp
concurrentOpenHandles: boolean
```
Whether one path may have multiple open handles.
#### `currentDirectory` _field_
```nupp
currentDirectory: boolean
```
Whether a process working directory exists.
#### `userFolders` _field_
```nupp
userFolders: boolean
```
Whether conventional user folders can be resolved.
#### `executableDirectory` _field_
```nupp
executableDirectory: boolean
```
Whether the running executable's directory can be resolved.
#### `persistentStorageRequest` _field_
```nupp
persistentStorageRequest: boolean
```
Whether persistent browser storage can be requested.
### `Entry` _record_
```nupp
record Entry ...
```
One immediate child of a listed directory.
#### Members
| Name | Kind | Description |
| --- | --- | --- |
| [`name`](#nupp.io.files.messages.Entry.name) | field | The child's name relative to the listed directory. |
| [`kind`](#nupp.io.files.messages.Entry.kind) | field | The child's kind without following a symbolic link. |
#### `name` _field_
```nupp
name: string
```
The child's name relative to the listed directory.
#### `kind` _field_
```nupp
kind: Kind
```
The child's kind without following a symbolic link.
### `Info` _record_
```nupp
record Info ...
```
Metadata about one resolved filesystem object.
#### Members
| Name | Kind | Description |
| --- | --- | --- |
| [`kind`](#nupp.io.files.messages.Info.kind) | field | The object's filesystem kind. |
| [`size`](#nupp.io.files.messages.Info.size) | field | Its byte size, or zero for a directory. |
| [`modified`](#nupp.io.files.messages.Info.modified) | field | Its modification time in milliseconds since the Unix epoch, the unit nupp.time.wallTime answers in, with whatever... |
| [`readOnly`](#nupp.io.files.messages.Info.readOnly) | field | Whether the native platform refuses writes. |
#### `kind` _field_
```nupp
kind: Kind
```
The object's filesystem kind.
#### `size` _field_
```nupp
size: integer
```
Its byte size, or zero for a directory.
#### `modified` _field_
```nupp
modified: number
```
Its modification time in milliseconds since the Unix epoch, the unit
`nupp.time.wallTime` answers in, with whatever fraction the platform records.
#### `readOnly` _field_
```nupp
readOnly: boolean
```
Whether the native platform refuses writes.
### `Kind` _type_
```nupp
type Kind = "file" | "directory" | "symlink" | "other"
```
### `Mode` _type_
```nupp
type Mode = "r" | "w" | "a" | "r+" | "w+" | "a+"
```
### `Origin` _type_
```nupp
type Origin = "set" | "current" | "end"
```
### `TemporaryOptions` _record_
```nupp
record TemporaryOptions ...
```
Naming and placement options for a native temporary path.
#### Members
| Name | Kind | Description |
| --- | --- | --- |
| [`directory`](#nupp.io.files.messages.TemporaryOptions.directory) | field | The native directory to create the path in. |
| [`prefix`](#nupp.io.files.messages.TemporaryOptions.prefix) | field | A separator-free fragment placed before the random portion of the name. |
| [`suffix`](#nupp.io.files.messages.TemporaryOptions.suffix) | field | A separator-free fragment placed after the random portion of the name. |
#### `directory` _field_
```nupp
directory: (string | paths.Path)?
```
The native directory to create the path in.
#### `prefix` _field_
```nupp
prefix: string?
```
A separator-free fragment placed before the random portion of the name.
#### `suffix` _field_
```nupp
suffix: string?
```
A separator-free fragment placed after the random portion of the name.
### `UserFolder` _type_
```nupp
type UserFolder = "home" | "documents" | "downloads" | "desktop" | "pictures" | "music" | "videos"
```