public Stream GetStreamFile(string baseName) { StreamCacheEntry entry; if (!StreamEntries.TryGetValue(baseName, out entry)) { return(null); } if (entry.FileName == null) { return(null); } return(File.Open(entry.FileName, FileMode.Open, FileAccess.Read, FileShare.Read)); }
override public void Load(Stream Stream) { this.Stream = Stream; var HeaderStruct = Stream.ReadStruct <HeaderStruct>(); Debug.Assert(HeaderStruct.Magic == "TO8CHTX"); Debug.Assert(HeaderStruct.FileSize <= Stream.Length); StreamEntries = SliceStream.CreateWithLength(Stream, HeaderStruct.OffsetEntries); StreamTexts = SliceStream.CreateWithLength(Stream, HeaderStruct.OffsetTexts); for (int n = 0; n < HeaderStruct.TextCount; n++) { var EntryStruct = StreamEntries.ReadStruct <EntryStruct>(); var Entry = new Entry(); Entry.Load(this, EntryStruct); Entries.Add(Entry); } }
public IEnumerable <FileInfo> GetStreamFilesInfo() { return(StreamEntries.Where(e => e.Value.FileName != null).Select(e => new FileInfo(e.Value.FileName))); }