using FNZCM2.Abstractions.Models.Metadata; using System; using System.Collections.Generic; using System.IO.Enumeration; using System.Linq; using System.Text; using System.Threading.Tasks; using FNZCM2.Abstractions.Utility; namespace FNZCM2.ProofOfConcept; using FSE = (bool isDir, string path, long size, DateTimeOffset lastWrited); internal class PocFileMetaReader { public static void RunPoc() { //var r1 = FileMetaReader.Read(ChooseFile("library-ajc", ".flac"), 0, out var err1); //var r2 = FileMetaReader.Read(FirstFile("library-ajc", ".log"), 0, out var err2); //var r3 = FileMetaReader.Read(FirstFile("library-ajc", ".txt"), 0, out var err3); //var r4 = FileMetaReader.Read(FirstFile("library-ajc", ".jpg"), 0, out var err4); //var r5 = FileMetaReader.Read(FirstFile("library-ajc", ".iso"), 0, out var err5); //var r6 = FileMetaReader.Read(FirstFile("library-ajc", ".mp4"), 0, out var err6); //var r7 = FileMetaReader.Read(FirstFile("library-ajc", ".png"), 0, out var err7); //var r1 = FileMetaReader.Read(FirstFile("library-ads", ".flac"), 0, out var err1); //var r7 = FileMetaReader.Read(FirstFile("library-ads", ".png"), 0, out var err7); //var r8 = FileMetaReader.Read(FirstFile("library-ads", ".mp3"), 0, out var err8); //var r4 = FileMetaReader.Read(FirstFile("library-ads", ".jpg"), 0, out var err4); //var r9 = FileMetaReader.Read(FirstFile("library-ads", ".tiff"), 0, out var err9); //var rA = FileMetaReader.Read(FirstFile("library-ads", ".pdf"), 0, out var errA); //var r2 = FileMetaReader.Read(FirstFile("library-ads", ".log"), 0, out var err2); //var r3 = FileMetaReader.Read(FirstFile("library-ads", ".m3u8"), 0, out var err3); //var r5 = FileMetaReader.Read(FirstFile("library-ads", ".gif"), 0, out var err5); //var r6 = FileMetaReader.Read(FirstFile("library-ads", ".accurip"), 0, out var err6); //var r1 = FileMetaReader.Read(FirstFile("library-afs", ".flac"), 0, out var err1); //var r5 = FileMetaReader.Read(FirstFile("library-afs", ".iso"), 0, out var err5); //var r7 = FileMetaReader.Read(FirstFile("library-afs", ".png"), 0, out var err7); //var r4 = FileMetaReader.Read(FirstFile("library-afs", ".jpg"), 0, out var err4); //var r8 = FileMetaReader.Read(FirstFile("library-afs", ".mdf"), 0, out var err8); //var r9 = FileMetaReader.Read(FirstFile("library-afs", ".mpg"), 0, out var err9); //var rA = FileMetaReader.Read(FirstFile("library-afs", ".bin"), 0, out var errA); //var rB = FileMetaReader.Read(FirstFile("library-afs", ".mp3"), 0, out var errB); //var r6 = FileMetaReader.Read(FirstFile("library-afs", ".fpl"), 0, out var err6); //var r2 = FileMetaReader.Read(FirstFile("library-afs", ".log"), 0, out var err2); //var r3 = FileMetaReader.Read(FirstFile("library-afs", ".mds"), 0, out var err3); foreach (var enumFile in EnumFiles("library-ads", ".flac", 3000, 0)) { var rf = FileMetaReader.Read(enumFile, 0, out var errF); if (rf == null) { var bpF = 0; } } int bp = 0; } private static string ChooseFile(string folder, string endsWith, int skip = 0) { var fse = new FileSystemEnumerable( folder, (ref FileSystemEntry p) => new( p.IsDirectory, p.ToFullPath(), p.Length, p.LastWriteTimeUtc ), new() { RecurseSubdirectories = true, }) { ShouldIncludePredicate = (ref FileSystemEntry p) => p.ToFullPath().EndsWith(endsWith, true, null) }; var file = fse.Skip(skip).First(); return file.path; } private static IEnumerable EnumFiles(string folder, string endsWith, int take = 1, int skip = 0) { var fse = new FileSystemEnumerable( folder, (ref FileSystemEntry p) => new( p.IsDirectory, p.ToFullPath(), p.Length, p.LastWriteTimeUtc ), new() { RecurseSubdirectories = true, }) { ShouldIncludePredicate = (ref FileSystemEntry p) => p.ToFullPath().EndsWith(endsWith, true, null) }; foreach (var file in fse.Skip(skip).Take(take)) { yield return file.path; } } }