# FsDirectoryBinding

`import { FsDirectoryBinding } from "destack:fs/binding";`

Filesystem directory binding family.

```ds title="FsDirectoryBinding"
export interface FsDirectoryBinding {
    create(entry: &'a readonly FilesystemEntry, mode: FileMode): Result<void, HostError>;
    remove(entry: &'a readonly FilesystemEntry): Result<void, HostError>;
    open(entry: &'a readonly FilesystemEntry): Result<DirectoryHandle, HostError>;
    close(directory: DirectoryHandle): Result<void, HostError>;
    read(directory: DirectoryHandle, entries: &'a [DirectoryEntry], names: &'b PathBuffer): Result<DirectoryBatch, HostError>;
    rewind(directory: DirectoryHandle): Result<void, HostError>;
    createTemporary(template: &'a readonly FilesystemEntry): Result<FilesystemEntry, HostError>;
}
```

[language/library/src/fs/binding/directory.ds:52:119](https://github.com/destack-sh/destack/blob/main/language/library/src/fs/binding/directory.ds#L52-L119)

## Members

### `create(entry: &'a readonly FilesystemEntry, mode: FileMode): Result<void, HostError>`

Create one directory entry.

### `remove(entry: &'a readonly FilesystemEntry): Result<void, HostError>`

Remove one empty directory entry.

### `open(entry: &'a readonly FilesystemEntry): Result<DirectoryHandle, HostError>`

Open one directory stream.

### `close(directory: DirectoryHandle): Result<void, HostError>`

Close one open directory handle.

### `read(directory: DirectoryHandle, entries: &'a [DirectoryEntry], names: &'b PathBuffer): Result<DirectoryBatch, HostError>`

Read directory entries into an output slice.

### `rewind(directory: DirectoryHandle): Result<void, HostError>`

Reset a directory stream to the first entry.

### `createTemporary(template: &'a readonly FilesystemEntry): Result<FilesystemEntry, HostError>`

Create one unique directory from a caller supplied template.
