Exemple #1
0
 public Stream OpenStream(PackedArchiveFileRecord record)
 {
     if (record.Size == 0)
     {
         //CreateViewStream interprets size = 0 as "whole file" so I can't use it for empty files
         return(Stream.Null);
     }
     return(map.CreateViewStream(payloadOffset + record.Offset, record.Size, MemoryMappedFileAccess.Read));
 }
Exemple #2
0
    private void WriteFile(MemoryMappedFile archiveMap, long payloadOffset, PackedArchiveFileRecord fileRecord, FileInfo file)
    {
        Console.WriteLine("packing " + file.Name + "...");

        long offset = payloadOffset + fileRecord.Offset;
        long size   = fileRecord.Size;

        using (var sourceStream = file.OpenRead()) {
            using (var destStream = archiveMap.CreateViewStream(offset, size)) {
                sourceStream.CopyTo(destStream);
            }
        }
    }
 public PackedArchiveFile(PackedArchive archive, PackedArchiveFileRecord record)
 {
     this.archive = archive;
     this.record  = record;
 }
Exemple #4
0
 public MemoryMappedViewAccessor OpenAccessor(PackedArchiveFileRecord record)
 {
     return(map.CreateViewAccessor(payloadOffset + record.Offset, record.Size, MemoryMappedFileAccess.Read));
 }