MemoryMappedFileData
The MemoryMappedFileData
class is an implementation of IFileData
backed up by memory-mapped files. It provides an efficient way to work with large data files.
Properties
Data
: The pointer to the start of the data.DataLength
: The length of the data.
Constructors
MemoryMappedFileData(string filePath, ulong start, ulong length)
: Creates file data backed by a memory mapped file from a given file path.MemoryMappedFileData(FileStream stream, ulong start, ulong length)
: Creates file data backed by a memory mapped file from a given file stream.
Destructor
~MemoryMappedFileData()
: Disposes the object, freeing the memory-mapped file and its view.
Methods
Dispose()
: Frees the memory-mapped file and its view.
Usage
This class provides an efficient way to handle large data files. It uses memory-mapped files to access parts of a file as if they were in memory. Here's a brief example:
using var fileData = new MemoryMappedFileData("path/to/file", 0, 100);
// Do something with fileData...
In this example, the MemoryMappedFileData
maps the first 100 bytes of the file at the given path into memory.
The resulting MemoryMappedFileData
object provides a pointer to the start of the data and the length of the data.