private HEDFormat LoadHeader() { int Bak = Open; Open = -1; foreach (string FileName in ListFiles()) { Stream File = OpenFile(FileName); StructReader Temp = new StructReader(File); Temp.BaseStream.Position = 0; if (Temp.ReadString(StringStyle.CString) != "HED") { continue; } Temp.BaseStream.Position = 0; var Header = new HEDFormat(); Temp.ReadStruct(ref Header); if (LBA[Bak].BaseStream.Length == Header.LBALength) { Open = Bak; return(Header); } } Open = Bak; throw new Exception("Failed to Open LBA Header"); }
public string[] ListFiles() { if (Open == -1) { BIN.BaseStream.Position = 0; var tmp = new BINHeader(); BIN.ReadStruct(ref tmp); return((from x in tmp.Offsets select GetFileName(x)).ToArray()); } HEDFormat Header = LoadHeader(); return((from x in Header.Offsets select GetFileName(x)).ToArray()); }