Files
2024-02-19 14:59:02 +01:00

40 lines
1.0 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
namespace Flax.Build
{
/// <summary>
/// Cache filesystem related queries like File.Exists and File.GetLastWriteTime.
/// </summary>
public static class FileCache
{
private static readonly Dictionary<string, FileInfo> _cache = new();
public static void FileRemoveFromCache(string path)
{
_cache.Remove(path);
}
public static bool Exists(string path)
{
if (_cache.TryGetValue(path, out var fileInfo))
return fileInfo.Exists;
fileInfo = new FileInfo(path);
_cache.Add(path, fileInfo);
return fileInfo.Exists;
}
public static DateTime GetLastWriteTime(string path)
{
if (_cache.TryGetValue(path, out var fileInfo))
return fileInfo.LastWriteTime;
fileInfo = new FileInfo(path);
_cache.Add(path, fileInfo);
return fileInfo.LastWriteTime;
}
}
}