public void Disassemble(string dataWinPath, string disassembledDataPath) { using (BinaryReader reader = FileIO.GetDataWinBinaryReader(dataWinPath)) { // Main Chunk FORM string mainChunkTag = BinaryStreamOperator.ReadChunkTag(reader); if (!string.Equals(mainChunkTag, Chunk.Form.TAG)) { Console.WriteLine("Cannot find main chunk tag at the begining of the file, abort"); return; } int formChunkSize = BinaryStreamOperator.ReadSize(reader); Console.WriteLine("FORM chunk size: " + formChunkSize); var fileIO = new FileIO(); if (!fileIO.IsDirectoryEmpty(disassembledDataPath)) { fileIO.EmptyDirectory(disassembledDataPath); } form.ParseBinary(reader); form.Export(fileIO, disassembledDataPath); } }
public Zone(FileIO io, string directory) { Name = io.GetFolderName(directory); var files = io.GetFiles(directory); Ads = new List<IAd>(files.Count()); foreach (var file in files) { Ads.Add(new Ad(io.ReadAllText(directory, file))); } }
private void LoadZones(FileIO io, bool forceRefresh) { if (forceRefresh || Zones == null) { var zoneDirs = io.GetDirs(rootDir); Zones = new List<Zone>(zoneDirs.Count()); foreach (string dir in zoneDirs) { Zones.Add(new Zone(io, dir)); } } }
public AdRepo(FileIO io, string directory) { rootDir = directory; LoadZones(io, true); }