private void _writeHeader(LrssIndex lr, ref int index) { header.H_FH_LOC[index] = fs.Length; lr.Index = index; lr.Address = fs.Position; fs.Write(lr.Header.ToBytes(len_fheader).XorCrypt(magic), 0, len_fheader); using (FileStream resource = new FileStream(lr.ResourcePath, FileMode.Open)) { byte[] data = new byte[lr.Size]; resource.Read(data, 0, data.Length); _writeBlocks(data, lr.Occupied); } index++; }
public async Task <LrssResource> ReadResource(LrssIndex li) { return(await Task.Run(() => { try { return new LrssResource(li.Size, li.Name, li.Type) { Data = GetContent(li.Size, li.Address, li.Occupied) }; } catch (Exception) { return null; } finally { OnEndpointReached?.Invoke(li.Occupied); } })); }