using System.IO; namespace Azaion.Common.Services; public class PhysicalFileSystem : IFileSystem { public Task ReadAllBytesAsync(string path, CancellationToken ct = default) { return File.ReadAllBytesAsync(path, ct); } public Task WriteAllBytesAsync(string path, byte[] content, CancellationToken ct = default) { return File.WriteAllBytesAsync(path, content, ct); } public bool FileExists(string path) { return File.Exists(path); } public void DeleteFile(string path) { File.Delete(path); } public IEnumerable GetFiles(string directory, string searchPattern) { return Directory.GetFiles(directory, searchPattern); } public IEnumerable GetFileInfos(string directory, string[] searchPatterns) { var dir = new DirectoryInfo(directory); if (!dir.Exists) return Enumerable.Empty(); return searchPatterns.SelectMany(pattern => dir.GetFiles(pattern)); } public DirectoryInfo GetDirectoryInfo(string path) { return new DirectoryInfo(path); } public bool DirectoryExists(string path) { return Directory.Exists(path); } public void CreateDirectory(string path) { Directory.CreateDirectory(path); } }