public void EnsureFullyLoaded() { if (_packedFile != null) { using (var reader = new AcdReader(_packedFile)) { while (reader.BaseStream.Position < reader.BaseStream.Length) { var entry = reader.ReadEntry(); if (!_entries.ContainsKey(entry.Name)) { _entries[entry.Name] = entry; } } } } else if (_unpackedDirectory != null) { foreach (var file in Directory.GetFiles(_unpackedDirectory)) { var name = Path.GetFileName(file); if (name != null && (!_entries.ContainsKey(name) || _entries[name] == null)) { _entries[name] = new AcdEntry { Name = name, Data = File.ReadAllBytes(file) }; } } } }
public static Acd FromFile(string filename) { if (!File.Exists(filename)) { throw new FileNotFoundException(filename); } var acd = new Acd(filename); using (var reader = new AcdReader(filename)) { acd.FromFile_Entries(reader); } return acd; }
private byte[] ReadPacked([NotNull] string entryName) { if (_packedBytes == null) { if (_packedFile == null) { return(null); } _packedBytes = File.ReadAllBytes(_packedFile); } using (var stream = new MemoryStream(_packedBytes)) using (var reader = new AcdReader(_packedFile, stream)) { return(reader.ReadEntryData(entryName)); } }
private void FromFile_Entries(AcdReader reader) { while (reader.BaseStream.Position < reader.BaseStream.Length) { var entry = reader.ReadEntry(); Entries[entry.Name] = entry; } }