#### [DiGi\.Core\.IO](DiGi.Core.IO.Overview.md 'DiGi\.Core\.IO\.Overview')
## DiGi\.Core\.IO\.Classes Namespace
### Classes
## Archive\ Class
Represents an archive container for storing serialized data\.
```csharp
public class Archive : DiGi.Core.Classes.SerializableObject, DiGi.Core.IO.Interfaces.IArchive, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.IO.Interfaces.IIOObject
where TSerializableObject : DiGi.Core.Interfaces.ISerializableObject
```
#### Type parameters
`TSerializableObject`
The type of object that can be serialized within the archive\.
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → Archive\
Implements [DiGi\.Core\.IO\.Interfaces\.IArchive](https://learn.microsoft.com/en-us/dotnet/api/digi.core.io.interfaces.iarchive 'DiGi\.Core\.IO\.Interfaces\.IArchive'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.IO\.Interfaces\.IIOObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.io.interfaces.iioobject 'DiGi\.Core\.IO\.Interfaces\.IIOObject')
### Constructors
## Archive\(byte\[\]\) Constructor
Initializes a new instance of the [Archive<TSerializableObject>](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Archive_TSerializableObject_ 'DiGi\.Core\.IO\.Classes\.Archive\') class using the specified byte array\.
```csharp
public Archive(byte[] bytes);
```
#### Parameters
`bytes` [System\.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte 'System\.Byte')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
The byte array to use for initialization\.
## Archive\(Archive\\) Constructor
Initializes a new instance of the [Archive<TSerializableObject>](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Archive_TSerializableObject_ 'DiGi\.Core\.IO\.Classes\.Archive\') class by copying an existing generic archive\.
```csharp
public Archive(DiGi.Core.IO.Classes.Archive archive);
```
#### Parameters
`archive` [DiGi\.Core\.IO\.Classes\.Archive<](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Archive_TSerializableObject_ 'DiGi\.Core\.IO\.Classes\.Archive\')[TSerializableObject](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Archive_TSerializableObject_.TSerializableObject 'DiGi\.Core\.IO\.Classes\.Archive\\.TSerializableObject')[>](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Archive_TSerializableObject_ 'DiGi\.Core\.IO\.Classes\.Archive\')
The generic archive to copy from\.
## Archive\(JsonObject\) Constructor
Initializes a new instance of the [Archive<TSerializableObject>](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Archive_TSerializableObject_ 'DiGi\.Core\.IO\.Classes\.Archive\') class using the specified JSON object\.
```csharp
public Archive(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to use for initialization\.
### Properties
## Archive\\.Bytes Property
Gets or sets the raw bytes contained within the archive\.
```csharp
public byte[]? Bytes { get; }
```
Implements [Bytes](https://learn.microsoft.com/en-us/dotnet/api/digi.core.io.interfaces.iarchive.bytes 'DiGi\.Core\.IO\.Interfaces\.IArchive\.Bytes')
#### Property Value
[System\.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte 'System\.Byte')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
## FileFilter Class
Provides a filter for selecting files based on a name and a set of extensions\.
```csharp
public sealed class FileFilter : DiGi.Core.Classes.SerializableObject, DiGi.Core.IO.Interfaces.IIOObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [DiGi\.Core\.Classes\.Object](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.object 'DiGi\.Core\.Classes\.Object') → [DiGi\.Core\.Classes\.SerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.classes.serializableobject 'DiGi\.Core\.Classes\.SerializableObject') → FileFilter
Implements [DiGi\.Core\.IO\.Interfaces\.IIOObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.io.interfaces.iioobject 'DiGi\.Core\.IO\.Interfaces\.IIOObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## FileFilter\(FileFilter\) Constructor
Initializes a new instance of the [FileFilter](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.FileFilter 'DiGi\.Core\.IO\.Classes\.FileFilter') class by copying an existing filter\.
```csharp
public FileFilter(DiGi.Core.IO.Classes.FileFilter? fileFilter);
```
#### Parameters
`fileFilter` [FileFilter](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.FileFilter 'DiGi\.Core\.IO\.Classes\.FileFilter')
The existing filter to copy\.
## FileFilter\(string, IEnumerable\\) Constructor
Initializes a new instance of the [FileFilter](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.FileFilter 'DiGi\.Core\.IO\.Classes\.FileFilter') class with a specified name and extensions\.
```csharp
public FileFilter(string? name, System.Collections.Generic.IEnumerable? extensions);
```
#### Parameters
`name` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The name of the filter\.
`extensions` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of file extensions associated with the filter\.
## FileFilter\(JsonObject\) Constructor
Initializes a new instance of the [FileFilter](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.FileFilter 'DiGi\.Core\.IO\.Classes\.FileFilter') class using the specified JSON object\.
```csharp
public FileFilter(System.Text.Json.Nodes.JsonObject? jsonObject);
```
#### Parameters
`jsonObject` [System\.Text\.Json\.Nodes\.JsonObject](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonobject 'System\.Text\.Json\.Nodes\.JsonObject')
The JSON object to use for initialization\.
### Properties
## FileFilter\.Extensions Property
Gets or sets the list of file extensions associated with this filter\.
```csharp
public System.Collections.Generic.List? Extensions { get; }
```
#### Property Value
[System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')
## FileFilter\.Name Property
Gets or sets the descriptive name of the file filter\.
```csharp
public string? Name { get; }
```
#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods
## FileFilter\.Clone\(\) Method
Creates a copy of the current object\.
```csharp
public override DiGi.Core.Interfaces.ISerializableObject? Clone();
```
Implements [Clone\(\)](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1.clone 'DiGi\.Core\.Interfaces\.ICloneableObject\`1\.Clone')
#### Returns
[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')
A new instance of the current object containing a copy of its data\.
## FileFilter\.Equals\(object\) Method
Determines whether the specified object is equal to the current object\.
```csharp
public override bool Equals(object? obj);
```
#### Parameters
`obj` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')
The object to compare with the current object\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the specified object is equal to the current object; otherwise, false\.
## FileFilter\.GetHashCode\(\) Method
Returns the hash code for the current object\.
```csharp
public override int GetHashCode();
```
#### Returns
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The hash code for the current object\.
## FileFilter\.ToString\(\) Method
Returns a string that represents the current object\.
```csharp
public override string ToString();
```
#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
A string representation of the current object\.
## Report Class
Represents a report used for collecting and exporting data\.
```csharp
public sealed class Report : DiGi.Core.IO.Interfaces.IIOObject, DiGi.Core.Interfaces.IObject
```
Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → Report
Implements [DiGi\.Core\.IO\.Interfaces\.IIOObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.io.interfaces.iioobject 'DiGi\.Core\.IO\.Interfaces\.IIOObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')
### Constructors
## Report\(\) Constructor
Initializes a new instance of the [Report](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Report 'DiGi\.Core\.IO\.Classes\.Report') class\.
```csharp
public Report();
```
## Report\(char\) Constructor
Initializes a new instance of the [Report](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Report 'DiGi\.Core\.IO\.Classes\.Report') class with a specified separator character\.
```csharp
public Report(char separator);
```
#### Parameters
`separator` [System\.Char](https://learn.microsoft.com/en-us/dotnet/api/system.char 'System\.Char')
The character used to separate values in the report\.
### Methods
## Report\.Add\(\) Method
Adds a new entry to the report\.
```csharp
public void Add();
```
## Report\.Add\(object\[\]\) Method
Adds one or more objects to the report\.
```csharp
public void Add(params object?[]? values);
```
#### Parameters
`values` [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
The objects to add to the report\.
## Report\.Add\\(IEnumerable\\) Method
Adds a collection of values to the report\.
```csharp
public void Add(System.Collections.Generic.IEnumerable? values);
```
#### Type parameters
`T`
The type of elements in the collection\.
#### Parameters
`values` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[T](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Report.Add_T_(System.Collections.Generic.IEnumerable_T_).T 'DiGi\.Core\.IO\.Classes\.Report\.Add\\(System\.Collections\.Generic\.IEnumerable\\)\.T')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
The collection of values to add to the report\.
## Report\.Add\\(T\[\]\) Method
Adds one or more values of type [T](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Report.Add_T_(T[]).T 'DiGi\.Core\.IO\.Classes\.Report\.Add\\(T\[\]\)\.T') to the report\.
```csharp
public void Add(params T?[]? values);
```
#### Type parameters
`T`
The type of values to add\.
#### Parameters
`values` [T](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Report.Add_T_(T[]).T 'DiGi\.Core\.IO\.Classes\.Report\.Add\\(T\[\]\)\.T')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
The values of type [T](DiGi.Core.IO.Classes.md#DiGi.Core.IO.Classes.Report.Add_T_(T[]).T 'DiGi\.Core\.IO\.Classes\.Report\.Add\\(T\[\]\)\.T') to add to the report\.
## Report\.GetHashCode\(\) Method
Returns the hash code for this instance\.
```csharp
public override int GetHashCode();
```
#### Returns
[System\.Int32](https://learn.microsoft.com/en-us/dotnet/api/system.int32 'System\.Int32')
The hash code for this instance\.
## Report\.ToString\(\) Method
Returns a string representation of the current report\.
```csharp
public override string ToString();
```
#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
A string that represents the current report\.
## Report\.Write\(string\) Method
Writes the report content to the specified file path\.
```csharp
public bool Write(string? path);
```
#### Parameters
`path` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
The path where the report will be written\.
#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
True if the write operation was successful; otherwise, false\.