示例#1
0
 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++;
 }
示例#2
0
 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);
         }
     }));
 }