---
title: FileFormats
summary: API reference for FileFormats.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-15
library: SAIF.Framework.Common.Files
reference_type: package
---

# FileFormats

`FileFormats` declares the four supported flat-file layout strategies that [`FileReader<TRecord>`](../saif.common.files.core/FileReaderOfT.md) and [`FileWriter<TRecord>`](../saif.common.files.core/FileWriterOfT.md) select between when parsing or writing a record type, based on the format attribute discovered on the type (see [BR-003](../../business-rules.md#br-003-requested-format-must-match-a-declared-configuration)).

## Purpose
- Identifies which parsing/writing strategy (quoted CSV, fixed-width, tab-delimited, or custom-delimited) applies to a given record type via its `FormatBase`-derived attribute.
- `MultipleRecord` is declared as a value but is never handled by `FileReader<TRecord>.PrepareParser` or by any branch in `FileWriter<TRecord>` — it is an unimplemented format value*.

## Context
- Namespace: `SAIF.Common.Files`
- Assembly/package: `SAIF.Framework.Common.Files`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| Csv | `Csv = 0` | Comma-delimited format with quoted-field handling ([BR-005](../../business-rules.md#br-005-quoted-field-handling-is-csv-only)). |
| Fixed | `Fixed = 1` | Fixed-width format where each field occupies a declared position and length ([BR-008](../../business-rules.md#br-008-fixed-width-values-forced-to-layout-length)). |
| TabDelimited | `TabDelimited = 2` | Tab-character-delimited format. |
| Delimited | `Delimited = 3` | Custom-delimiter format, with the delimiter supplied via the `DelimitedBy` attribute. |
| MultipleRecord | `MultipleRecord = 4` | Declared but not handled by any reader/writer code path — an unimplemented format value*. |

## Behavioral notes
- The enum value on a type's format attribute is matched against a caller-requested format to select the configuration to use ([BR-003](../../business-rules.md#br-003-requested-format-must-match-a-declared-configuration)).
- `MultipleRecord` has no corresponding parser/writer branch, so a type declaring this format would fail during reading or writing*.

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- Common\SAIF.Common.Files\Core\Enums.cs
