Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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)));
            }
        }
Esempio n. 3
0
        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));
                }
            }
        }
Esempio n. 4
0
 public AdRepo(FileIO io, string directory)
 {
     rootDir = directory;
     LoadZones(io, true);
 }