Table of Contents

Class FileInfoExtensions

Namespace
Cuemon.Extensions.Data.Integrity
Assembly
Cuemon.Extensions.Data.Integrity.dll

Extension methods for the FileInfo class.

public static class FileInfoExtensions
Inheritance
FileInfoExtensions

Examples

The following example demonstrates generating a from a file using the GetCacheValidator(FileInfo, Func<Hash>, Action<FileChecksumOptions>) extension method.

using System;
using System.IO;
using System.Text;
using Cuemon.Data.Integrity;
using Cuemon.Extensions.Data.Integrity;

namespace MyApp.Examples;

public class FileInfoExtensionsExample
{
    public static void Main()
    {
        // Create a temporary file to work with
        string tempFile = Path.GetTempFileName();
        File.WriteAllText(tempFile, "Hello, World!", Encoding.UTF8);

        try
        {
            var fileInfo = new FileInfo(tempFile);

            // Generate a CacheValidator with default FNV-1a/128 hashing
            CacheValidator validator = fileInfo.GetCacheValidator();

            Console.WriteLine($"File: {fileInfo.Name}");
            Console.WriteLine($"Created (UTC): {validator.Created}");
            Console.WriteLine($"Modified (UTC): {validator.Modified}");
            Console.WriteLine($"Checksum (hex): {validator.Checksum.ToHexadecimalString()}");
            Console.WriteLine($"Validation: {validator.Validation}");

            // Combine with an additional semantic checksum
            validator.CombineWith(Encoding.UTF8.GetBytes("additional-context"));
            Console.WriteLine($"Combined checksum: {validator.Checksum.ToHexadecimalString()}");
        }
        finally
        {
            File.Delete(tempFile);
        }
    }
}

Methods

GetCacheValidator(FileInfo, Func<Hash>, Action<FileChecksumOptions>)

Returns a CacheValidator from the specified file.

public static CacheValidator GetCacheValidator(this FileInfo file, Func<Hash> hashFactory = null, Action<FileChecksumOptions> setup = null)

Parameters

file FileInfo

The FileInfo to extend.

hashFactory Func<Hash>

The function delegate that is invoked to produce the HashResult. Default is CreateFnv128(Action<FowlerNollVoOptions>).

setup Action<FileChecksumOptions>

The FileChecksumOptions which may be configured.

Returns

CacheValidator

A CacheValidator that represents either a weak, medium or strong integrity check of the specified file.

Remarks

Should the specified file trigger any sort of exception, a Default is returned.

Exceptions

ArgumentNullException

file is null.