private static RarOptions FixOptions(RarOptions options)
 {
     //make sure we're closing streams with fileinfo
     if (options.HasFlag(RarOptions.KeepStreamsOpen))
     {
         options = (RarOptions)FlagUtilities.SetFlag(options, RarOptions.KeepStreamsOpen, false);
     }
     return(options);
 }
 private static RarOptions FixOptions(RarOptions options)
 {
     //make sure we're closing streams with fileinfo
     if (options.HasFlag(RarOptions.KeepStreamsOpen))
     {
         options = (RarOptions)FlagUtilities.SetFlag(options, RarOptions.KeepStreamsOpen, false);
     }
     return options;
 }
Ejemplo n.º 3
0
 public void Dispose()
 {
     if (entriesForCurrentReadStream != null)
     {
         entriesForCurrentReadStream.Dispose();
     }
     if (Volume.Stream != null && !options.HasFlag(RarOptions.KeepStreamsOpen))
     {
         Volume.Stream.Dispose();
     }
 }
Ejemplo n.º 4
0
        internal IEnumerable <RarFilePart> GetVolumeFileParts()
        {
            MarkHeader previousMarkHeader = null;

            foreach (RarHeader header in headerFactory.ReadHeaders(GetStream()))
            {
                switch (header.HeaderType)
                {
                case HeaderType.ArchiveHeader:
                {
                    ArchiveHeader = header as ArchiveHeader;
                }
                break;

                case HeaderType.MarkHeader:
                {
                    previousMarkHeader = header as MarkHeader;
                }
                break;

                case HeaderType.FileHeader:
                {
                    FileHeader fh = header as FileHeader;

                    if (!fh.FileFlags.HasFlag(FileFlags.DIRECTORY))
                    {
                        RarFilePart fp = CreateFilePart(fh, previousMarkHeader);
                        yield return(fp);
                    }
                    else if (options.HasFlag(RarOptions.GiveDirectoryEntries))
                    {
                        RarFilePart fp = CreateFilePart(fh, previousMarkHeader);
                        yield return(fp);
                    }
                }
                break;
                }
            }
        }
 internal StreamRarArchiveVolume(Stream stream, RarOptions options)
     : base(StreamingMode.Seekable, options)
 {
     Stream = stream;
     this.streamOwner = !options.HasFlag(RarOptions.KeepStreamsOpen);
 }
Ejemplo n.º 6
0
 internal RarReaderVolume(Stream stream, RarOptions options)
     : base(StreamingMode.Streaming, options)
 {
     Stream           = stream;
     this.streamOwner = !options.HasFlag(RarOptions.KeepStreamsOpen);
 }
Ejemplo n.º 7
0
 internal StreamRarArchiveVolume(Stream stream, RarOptions options)
     : base(StreamingMode.Seekable, options)
 {
     Stream           = stream;
     this.streamOwner = !options.HasFlag(RarOptions.KeepStreamsOpen);
 }
Ejemplo n.º 8
0
 internal RarReaderVolume(Stream stream, RarOptions options)
     : base(StreamingMode.Streaming, options)
 {
     Stream = stream;
     this.streamOwner = !options.HasFlag(RarOptions.KeepStreamsOpen);
 }