---
title: clsFileResourceManager
summary: API reference for clsFileResourceManager.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-24
library: SAIF.Resources
reference_type: package
---


# clsFileResourceManager

Concrete resource manager that reads culture-specific template files from a directory on disk.

## Purpose

- Load text templates from the configured resource directory and delegate tokenization to `clsResourceManager`.

## Context

- Namespace: `SAIF.Resources`
- Assembly/package: `SAIF.ResourceFiles`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `ResourceDirectory` | `Public ReadOnly Property ResourceDirectory As String` | Returns the directory used when locating resource templates. |
| `New` | `Public Sub New(resourceDirectory As String)` | Initializes the manager with the directory that contains resource templates. |
| `LoadResource` | `Public Overrides Sub LoadResource(inResourceName As String, inTemplateExtension As String, inCultureCode As String)` | Loads a template file by name, extension, and culture code using the built-in fallback chain. |

## Inherited public members

Members in this section are inherited from `clsResourceManager` in `SAIF.Resources`. They remain part of this type's public surface through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `TokenStartDelimiter` | `Public Shared Property TokenStartDelimiter As String` | Gets or sets the opening delimiter used when parsing tokens. | `SAIF.Resources` — `clsResourceManager` |
| `TokenEndDelimiter` | `Public Shared Property TokenEndDelimiter As String` | Gets or sets the closing delimiter used when parsing tokens. | `SAIF.Resources` — `clsResourceManager` |
| `Text` | `Public ReadOnly Property Text As String` | Returns the original loaded template text. | `SAIF.Resources` — `clsResourceManager` |
| `ReplacedText` | `Public ReadOnly Property ReplacedText As String` | Returns the current template text after token replacement operations. | `SAIF.Resources` — `clsResourceManager` |
| `Tokens` | `Public ReadOnly Property Tokens As List(Of Token)` | Returns the discovered tokens for the currently loaded text. | `SAIF.Resources` — `clsResourceManager` |
| `New` | `Public Sub New(text As String)` | Initializes the manager with template text and immediately tokenizes it. | `SAIF.Resources` — `clsResourceManager` |
| `LoadResource` | `Public Sub LoadResource(inResourceName As String, Optional inTemplateExtension As String = "html")` | Loads a resource using the current thread UI culture and the specified extension. | `SAIF.Resources` — `clsResourceManager` |
| `LoadResource` | `Public Overridable Sub LoadResource(inResourceName As String, inTemplateExtension As String, inCultureCode As String)` | Culture-aware load hook for concrete implementations. | `SAIF.Resources` — `clsResourceManager` |
| `GetToken` | `Public Function GetToken(inTokenName As String) As Token` | Returns the token whose name matches the supplied token identifier. | `SAIF.Resources` — `clsResourceManager` |
| `ReplaceToken` | `Public Function ReplaceToken(inTokenName As String, inReplacement As String) As String` | Replaces every occurrence of the named token in the current text and returns the updated result. | `SAIF.Resources` — `clsResourceManager` |
| `ReplaceToken` | `Public Shared Function ReplaceToken(text As String, inTokenName As String, inReplacement As String) As String` | Performs one-off token replacement against the supplied text without requiring a preexisting manager instance. | `SAIF.Resources` — `clsResourceManager` |

## Behavioral notes

- The load algorithm looks for `<name>_<culture>.<ext>` first, then retries with a two-letter culture code, then retries with no culture suffix.
- When a file is found, the class reads the full file content with `StreamReader` and passes it to `Initialize`.

## Constraints and usage notes

- The constructor trims a trailing backslash from `resourceDirectory` before storing it.
- If no matching file exists after the fallback chain, the method returns without loading content.

## Sources

- `Resources\SAIF.Resources\clsFileResourceManager.vb`
- `Resources\SAIF.Resources\clsResourceManager.vb`
- `Resources\SAIF.Resources\SAIF.BOF.ResourceFiles.vbproj`
