#### [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\.