---
title: "Class FileStorage | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Storage.FileStorage/FileStorage/"
---

# Class FileStorage

> **Inheritance:** `System.Object` -> FileStorage

###### **Namespace**: [Aurigma.DesignAtoms.Storage.FileStorage](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Storage.FileStorage.md)

###### **Assembly**: Aurigma.DesignAtoms.dll

```csharp title="Syntax"
public class FileStorage : IProtectableFileStorage, IFileStorage, IDisposable
```

## Implements

* [Aurigma.DesignAtoms.Storage.FileStorage.IProtectableFileStorage](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Storage.FileStorage/IProtectableFileStorage.md)
* [Aurigma.DesignAtoms.Storage.FileStorage.IFileStorage](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Storage.FileStorage/IFileStorage.md)
* `System.IDisposable`

## Inherited Members

* `System.Object.ToString`
* `System.Object.Equals(System.Object)`
* `System.Object.Equals(System.Object,System.Object)`
* `System.Object.ReferenceEquals(System.Object,System.Object)`
* `System.Object.GetHashCode`
* `System.Object.GetType`
* `System.Object.MemberwiseClone`

## Constructors

### FileStorage

```csharp
public FileStorage(IFileCacheConfiguration fileCacheConfig, bool initializeCleanup = true)
```

## Properties

### GetLastAccessTimeMethod

```csharp
public Func<string, DateTime?> GetLastAccessTimeMethod { get; set; }
```

## Methods

### InitializePeriodicCleanUp

```csharp
public void InitializePeriodicCleanUp()
```

### Finalize

```csharp
protected void Finalize()
```

### Dispose

```csharp
public void Dispose()
```

### AddFile

```csharp
public string AddFile(string filePath)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *filePath* |  |

##### Returns

`System.String`

### AddFileWithId

```csharp
public void AddFileWithId(string fileId, string filePath)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |
| `System.String` | *filePath* |  |

### AddFile

```csharp
public string AddFile(string extension, Stream fileData)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *extension* |  |
| `System.IO.Stream` | *fileData* |  |

##### Returns

`System.String`

### AddFileWithId

```csharp
public void AddFileWithId(string fileId, Stream fileData)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |
| `System.IO.Stream` | *fileData* |  |

### WriteToStream

```csharp
public void WriteToStream(string fileId, Action<Stream> action)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |
| `System.Action<System.IO.Stream>` | *action* |  |

### GetReadStream

```csharp
public Stream GetReadStream(string fileId)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |

##### Returns

`System.IO.Stream`

### GetInfo

```csharp
public CacheFileInfo GetInfo(string fileId)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |

##### Returns

`Aurigma.DesignAtoms.Cache.Abstractions.Models.CacheFileInfo`

### RemoveFile

```csharp
public bool RemoveFile(string fileId)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |

##### Returns

`System.Boolean`

### RemoveFilesByPrefix

```csharp
public IEnumerable<string> RemoveFilesByPrefix(string prefix)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *prefix* |  |

##### Returns

`System.Collections.Generic.IEnumerable<System.String>`

### UpdateLastAccessTime

```csharp
public void UpdateLastAccessTime(string fileId)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |

### FileExists

```csharp
public bool FileExists(string fileId)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |

##### Returns

`System.Boolean`

### SetProtection

```csharp
public virtual void SetProtection(string fileId, bool value)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |
| `System.Boolean` | *value* |  |

### IsProtected

```csharp
public virtual bool IsProtected(string fileId)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *fileId* |  |

##### Returns

`System.Boolean`
