Exemple #1
0
        internal override Stream GetCompressedStream()
        {
            if (!Header.HasStream)
            {
                return(null);
            }
            var folderStream = _database.GetFolderStream(_stream, Folder, _database.PasswordProvider);

            int  firstFileIndex = _database._folderStartFileIndex[_database._folders.IndexOf(Folder)];
            int  skipCount      = Index - firstFileIndex;
            long skipSize       = 0;

            for (int i = 0; i < skipCount; i++)
            {
                skipSize += _database._files[firstFileIndex + i].Size;
            }
            if (skipSize > 0)
            {
                folderStream.Skip(skipSize);
            }
            return(new ReadOnlySubStream(folderStream, Header.Size));
        }
Exemple #2
0
        internal override Stream GetCompressedStream()
        {
            if (!Header.HasStream)
            {
                return(null);
            }
            var folderStream = database.GetFolderStream(stream, Folder, null);

            int  firstFileIndex = database.FolderStartFileIndex[database.Folders.IndexOf(Folder)];
            int  skipCount      = Index - firstFileIndex;
            long skipSize       = 0;

            for (int i = 0; i < skipCount; i++)
            {
                skipSize += database.Files[firstFileIndex + i].Size;
            }
            if (skipSize > 0)
            {
                //folderStream.Skip(skipSize);
                Utility.Skip(folderStream, skipSize);
            }
            return(new ReadOnlySubStream(folderStream, Header.Size));
        }