public AllocationTableStream(Stream data, AllocationTable table, int blockSize, int initialBlock, long length) { Data = data; BlockSize = blockSize; Length = length; Iterator = new AllocationTableIterator(table, initialBlock); Data.Position = Iterator.PhysicalBlock * BlockSize; }
public AllocationTableIterator(AllocationTable table, int initialBlock) { Fat = table; if (!BeginIteration(initialBlock)) { throw new ArgumentException($"Attempted to start FAT iteration from an invalid block. ({initialBlock}"); } }
public SaveFs(Stream storage, Stream allocationTable, SaveHeader header) { StreamSource = new SharedStreamSource(storage); AllocationTable = new AllocationTable(allocationTable); Header = header; ReadFileInfo(); var dictionary = new Dictionary <string, FileEntry>(); foreach (FileEntry entry in Files) { dictionary[entry.FullPath] = entry; } FileDictionary = dictionary; }