Files
fil/docs/snippets/csharp/cache/disk_cache.cs

43 lines
1.6 KiB
C#
Raw Normal View History

2026-06-01 23:40:55 +02:00
```csharp title="disk_cache.cs"
using Kreuzberg;
using System;
using System.IO;
using System.Threading.Tasks;
var config = new ExtractionConfig
{
UseCache = true,
CacheConfig = new CacheConfig
{
CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "kreuzberg_cache"),
MaxCacheSize = 1024 * 1024 * 500,
CacheTtlSeconds = 86400 * 7,
EnableCompression = true
}
};
Console.WriteLine("First extraction (will be cached)...");
var result1 = await KreuzbergLib.ExtractFileAsync("document.pdf", config);
Console.WriteLine($" - Content length: {result1.Content.Length}");
Console.WriteLine($" - Cached: {result1.Metadata.WasCached}");
Console.WriteLine("\nSecond extraction (from cache)...");
var result2 = await KreuzbergLib.ExtractFileAsync("document.pdf", config);
Console.WriteLine($" - Content length: {result2.Content.Length}");
Console.WriteLine($" - Cached: {result2.Metadata.WasCached}");
Console.WriteLine($"\nResults are identical: {result1.Content == result2.Content}");
await KreuzbergLib.ClearCacheAsync("document.pdf");
Console.WriteLine("\nCache cleared for document.pdf");
await KreuzbergLib.ClearAllCacheAsync();
Console.WriteLine("All cache cleared");
var cacheStats = await KreuzbergLib.GetCacheStatsAsync();
Console.WriteLine($"\nCache Statistics:");
Console.WriteLine($" - Total entries: {cacheStats.TotalEntries}");
Console.WriteLine($" - Cache size: {cacheStats.CacheSizeBytes / 1024 / 1024} MB");
Console.WriteLine($" - Hit rate: {cacheStats.HitRate:P}");
```