> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revoengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# storage.walkFileData()

> Public low-code contract, signatures and examples for storage.walkFileData.

## `storage.walkFileData()`

Streams structured records from CSV/TSV, XLSX, NDJSON/JSONL, JSON arrays,
or record-oriented XML into awaited callbacks. Plain text, top-level JSON objects,
and binary files are not supported in record mode. mode: "lines" supports physical text lines without parsing CSV fields.
Omitted take scans all rows. XLSX uses the first visible sheet by default;
XML requires recordPath.
Defaults: batchSize=2000, readBatchSize=100000; both accept 1–100,000.
Source changes or callback errors stop the scan. Invalid CSV syntax rejects indexing
with STORAGE\_CSV\_INVALID before the first business callback; diagnostics contain no raw data.
Keep only aggregates.

### Overloads

```ts theme={null}
static walkFileData<T = any>(
      storageEntryId: string,
      read: StorageWalkReadOptions,
      callback: (rows: T[], context: StorageWalkContext) => void | Promise<void>,
      options?: StorageWalkOptions,
    ): Promise<StorageWalkResult>;

static walkFileData<T = any>(
      namespace: string,
      storageEntryId: string,
      read: StorageWalkReadOptions,
      callback: (rows: T[], context: StorageWalkContext) => void | Promise<void>,
      options?: StorageWalkOptions,
    ): Promise<StorageWalkResult>;
```

### Example

```ts theme={null}
let processed = 0;
await storage.walkFileData(storageEntryId, {}, async (rows) => {
  processed += rows.length;
}, { fullScan: true });
return { processed };
```

See [all storage methods](https://docs.revoengine.com/low-code/reference/storage.md) or [runtime basics](https://docs.revoengine.com/low-code/overview.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.