public void Equals() { CDBuilder builder = new CDBuilder(); CDReader fs = new CDReader(builder.Build(), false); Assert.Equal(fs.GetFileInfo("foo.txt"), fs.GetFileInfo("foo.txt")); }
public void Name() { CDBuilder builder = new CDBuilder(); CDReader fs = new CDReader(builder.Build(), false); Assert.Equal("foo.txt", fs.GetFileInfo("foo.txt").Name); Assert.Equal("foo.txt", fs.GetFileInfo(@"path\foo.txt").Name); Assert.Equal("foo.txt", fs.GetFileInfo(@"\foo.txt").Name); }
public void CreationTimeUtc() { CDBuilder builder = new CDBuilder(); builder.AddFile(@"foo.txt", new byte[] { 1 }); CDReader fs = new CDReader(builder.Build(), false); Assert.True(DateTime.UtcNow >= fs.GetFileInfo("foo.txt").CreationTimeUtc); Assert.True(DateTime.UtcNow.Subtract(TimeSpan.FromSeconds(10)) <= fs.GetFileInfo("foo.txt").CreationTimeUtc); }
public void Exists() { CDBuilder builder = new CDBuilder(); builder.AddFile(@"dir\foo.txt", new byte[] { 1 }); CDReader fs = new CDReader(builder.Build(), false); Assert.False(fs.GetFileInfo("unknown.txt").Exists); Assert.True(fs.GetFileInfo(@"dir\foo.txt").Exists); Assert.False(fs.GetFileInfo(@"dir").Exists); }
public void Length() { CDBuilder builder = new CDBuilder(); builder.AddFile(@"FILE.TXT", new byte[0]); builder.AddFile(@"FILE2.TXT", new byte[1]); builder.AddFile(@"FILE3.TXT", new byte[10032]); builder.AddFile(@"FILE3.TXT;2", new byte[132]); CDReader fs = new CDReader(builder.Build(), false); Assert.Equal(0, fs.GetFileInfo("FILE.txt").Length); Assert.Equal(1, fs.GetFileInfo("FILE2.txt").Length); Assert.Equal(10032, fs.GetFileInfo("FILE3.txt;1").Length); Assert.Equal(132, fs.GetFileInfo("FILE3.txt;2").Length); Assert.Equal(132, fs.GetFileInfo("FILE3.txt").Length); }
public void FileInfo() { CDBuilder builder = new CDBuilder(); CDReader fs = new CDReader(builder.Build(), false); DiscFileInfo fi = fs.GetFileInfo(@"SOMEDIR\SOMEFILE.TXT"); Assert.NotNull(fi); }
public void Attributes() { CDBuilder builder = new CDBuilder(); builder.AddFile("foo.txt", new byte[] { 1 }); CDReader fs = new CDReader(builder.Build(), false); DiscFileInfo fi = fs.GetFileInfo("foo.txt"); // Check default attributes Assert.Equal(FileAttributes.ReadOnly, fi.Attributes); }
public void Parent() { CDBuilder builder = new CDBuilder(); builder.AddFile(@"SOMEDIR\ADIR\FILE.TXT", new byte[] { 1 }); CDReader fs = new CDReader(builder.Build(), false); DiscFileInfo fi = fs.GetFileInfo(@"SOMEDIR\ADIR\FILE.TXT"); Assert.Equal(fs.GetDirectoryInfo(@"SOMEDIR\ADIR"), fi.Parent); Assert.Equal(fs.GetDirectoryInfo(@"SOMEDIR\ADIR"), fi.Directory); }
public void Open_FileNotFound() { CDBuilder builder = new CDBuilder(); CDReader fs = new CDReader(builder.Build(), false); DiscFileInfo di = fs.GetFileInfo("foo.txt"); Assert.Throws <FileNotFoundException>(() => { using (Stream s = di.Open(FileMode.Open)) { } }); }
public void Open_Read() { CDBuilder builder = new CDBuilder(); builder.AddFile("foo.txt", new byte[] { 1 }); CDReader fs = new CDReader(builder.Build(), false); DiscFileInfo di = fs.GetFileInfo("foo.txt"); using (Stream s = di.Open(FileMode.Open, FileAccess.Read)) { Assert.False(s.CanWrite); Assert.True(s.CanRead); Assert.Equal(1, s.ReadByte()); } }
private static void ScanFiles() { var parsers = new List <Action <BinaryReader, string> >(); if (_checkAll || _checkTim) { parsers.Add((binaryReader, fileTitle) => { var timParser = new TIMParser((tmdEntity, fp) => { AllTextures.Add(tmdEntity); UpdateProgress(fp, $"Found Texture {tmdEntity.Width}x{tmdEntity.Height} {tmdEntity.Bpp}bpp"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for TIM Images at file {0}", fileTitle); timParser.LookForTim(binaryReader, fileTitle); }); } if (_checkTimAlt) { parsers.Add((binaryReader, fileTitle) => { var timParser = new TIMParserOld((tmdEntity, fp) => { AllTextures.Add(tmdEntity); UpdateProgress(fp, $"Found Texture {tmdEntity.Width}x{tmdEntity.Height} {tmdEntity.Bpp}bpp"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for TIM Images (alt) at file {0}", fileTitle); timParser.LookForTim(binaryReader, fileTitle); }); } if (_checkAll || _checkTmd) { parsers.Add((binaryReader, fileTitle) => { var tmdParser = new TMDParser((tmdEntity, fp) => { AllEntities.Add(tmdEntity); UpdateProgress(fp, $"Found Model with {tmdEntity.ChildCount} objects"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for TMD Models at file {0}", fileTitle); tmdParser.LookForTmd(binaryReader, fileTitle); }); } if (_checkTmdAlt) { parsers.Add((binaryReader, fileTitle) => { var tmdParser = new TMDParserAlternative((tmdEntity, fp) => { AllEntities.Add(tmdEntity); UpdateProgress(fp, $"Found Model with {tmdEntity.ChildCount} objects"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for TMD Models (alt) at file {0}", fileTitle); tmdParser.LookForTmd(binaryReader, fileTitle); }); } if (_checkAll || _checkPmd) { parsers.Add((binaryReader, fileTitle) => { var pmdParser = new PMDParser((pmdEntity, fp) => { AllEntities.Add(pmdEntity); UpdateProgress(fp, $"Found Model with {pmdEntity.ChildCount} objects"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for PMD Models at file {0}", fileTitle); pmdParser.LookForPMD(binaryReader, fileTitle); }); } if (_checkAll || _checkTod) { parsers.Add((binaryReader, fileTitle) => { var todParser = new TODParser((todEntity, fp) => { AllAnimations.Add(todEntity); UpdateProgress(fp, $"Found Animation with {todEntity.ObjectCount} objects and {todEntity.FrameCount} frames"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for TOD Animations at file {0}", fileTitle); todParser.LookForTOD(binaryReader, fileTitle); }); } if (_checkHmdModels) { parsers.Add((binaryReader, fileTitle) => { var hmdParser = new HMDParser((hmdEntity, fp) => { AllEntities.Add(hmdEntity); UpdateProgress(fp, $"Found Model with {hmdEntity.ChildCount} objects"); PreviewForm.ReloadItems(); }); Logger.WriteLine(""); Logger.WriteLine("Scanning for HMD Models at file {0}", fileTitle); hmdParser.LookForHMDEntities(binaryReader, fileTitle); }); } if (_path.ToLowerInvariant().EndsWith(".iso")) { using (var isoStream = File.Open(_path, FileMode.Open)) { var cdReader = new CDReader(isoStream, true); var files = cdReader.GetFiles("", _filter ?? "*.*", SearchOption.AllDirectories); foreach (var file in files) { if (file.ToLowerInvariant().Contains(".str;")) { continue; } var fileInfo = cdReader.GetFileInfo(file); if (fileInfo.Exists) { foreach (var parser in parsers) { using (var stream = fileInfo.OpenRead()) { ProcessFile(stream, file, parser); } } } } } } else if (File.Exists(_path)) { Parallel.ForEach(parsers, parser => { using (var fs = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read)) { ProcessFile(fs, _path, parser); } }); } else { ProcessFiles(_path, _filter, parsers); } }