Documentation
¶
Index ¶
Constants ¶
const ( HostOSUnknown = 0 HostOSMSDOS = 1 HostOSOS2 = 2 HostOSWindows = 3 HostOSUnix = 4 HostOSMacOS = 5 HostOSBeOS = 6 )
FileHeader HostOS types
Variables ¶
var ( ErrCorruptBlockHeader = errors.New("rardecode: corrupt block header") ErrCorruptFileHeader = errors.New("rardecode: corrupt file header") ErrBadHeaderCRC = errors.New("rardecode: bad header crc") ErrUnknownDecoder = errors.New("rardecode: unknown decoder version") ErrDecoderOutOfData = errors.New("rardecode: decoder expected more data than is in packed file") ErrArchiveEncrypted = errors.New("rardecode: archive encrypted, password required") ErrArchivedFileEncrypted = errors.New("rardecode: archived files encrypted, password required") )
var ( ErrBadPassword = errors.New("rardecode: incorrect password") ErrCorruptEncryptData = errors.New("rardecode: corrupt encryption data") ErrUnknownEncryptMethod = errors.New("rardecode: unknown encryption method") ErrPlatformIntSize = errors.New("rardecode: platform integer size too small") ErrDictionaryTooLarge = errors.New("rardecode: decode dictionary too large") )
var ( ErrUnknownFilter = errors.New("rardecode: unknown V5 filter") ErrCorruptDecodeHeader = errors.New("rardecode: corrupt decode header") )
var ( ErrTooManyFilters = errors.New("rardecode: too many filters") ErrInvalidFilter = errors.New("rardecode: invalid filter") ErrMultipleDecoders = errors.New("rardecode: multiple decoders in a single archive not supported") )
var ( ErrHuffDecodeFailed = errors.New("rardecode: huffman decode failed") ErrInvalidLengthTable = errors.New("rardecode: invalid huffman code length table") )
var ( ErrShortFile = errors.New("rardecode: decoded file too short") ErrInvalidFileBlock = errors.New("rardecode: invalid file block") ErrUnexpectedArcEnd = errors.New("rardecode: unexpected end of archive") ErrBadFileChecksum = errors.New("rardecode: bad file checksum") ErrSolidOpen = errors.New("rardecode: solid files don't support Open") ErrUnknownVersion = errors.New("rardecode: unknown archive version") )
var ( ErrNoSig = errors.New("rardecode: RAR signature not found") ErrVerMismatch = errors.New("rardecode: volume version mistmatch") ErrArchiveNameEmpty = errors.New("rardecode: archive name empty") ErrFileNameRequired = errors.New("rardecode: filename required for multi volume archive") )
var (
ErrCorruptPPM = errors.New("rardecode: corrupt ppm data")
)
var (
ErrInvalidVMInstruction = errors.New("rardecode: invalid vm instruction")
)
var (
ErrUnsupportedDecoder = errors.New("rardecode: unsupported decoder version")
)
Functions ¶
This section is empty.
Types ¶
type File ¶
type File struct {
FileHeader
// contains filtered or unexported fields
}
File represents a file in a RAR archive
func (*File) Open ¶
func (f *File) Open() (io.ReadCloser, error)
Open returns an io.ReadCloser that provides access to the File's contents. Open is not supported on Solid File's as their contents depend on the decoding of the preceding files in the archive. Use OpenReader and Next to access Solid file contents instead.
type FileHeader ¶
type FileHeader struct {
Name string // file name using '/' as the directory separator
IsDir bool // is a directory
Solid bool // is a solid file
Encrypted bool // is encrypted
HostOS byte // Host OS the archive was created on
Attributes int64 // Host OS specific file attributes
PackedSize int64 // packed file size (or first block if the file spans volumes)
UnPackedSize int64 // unpacked file size
UnKnownSize bool // unpacked file size is not known
ModificationTime time.Time // modification time (non-zero if set)
CreationTime time.Time // creation time (non-zero if set)
AccessTime time.Time // access time (non-zero if set)
Version int // file version
}
FileHeader represents a single file in a RAR archive.
func (*FileHeader) Mode ¶
func (f *FileHeader) Mode() os.FileMode
Mode returns an os.FileMode for the file, calculated from the Attributes field.
type Option ¶
type Option func(*option)
An Option is used for optional archive extraction settings.
func BufferSize ¶
BufferSize sets the size of the bufio.Reader used in reading the archive.
func FileSystem ¶
FileSystem sets the fs.FS to be used for opening archive volumes.
type ReadCloser ¶
type ReadCloser struct {
Reader
}
ReadCloser is a Reader that allows closing of the rar archive.
func OpenReader ¶
func OpenReader(name string, opts ...Option) (*ReadCloser, error)
OpenReader opens a RAR archive specified by the name and returns a ReadCloser.
type Reader ¶
type Reader struct {
// contains filtered or unexported fields
}
Reader provides sequential access to files in a RAR archive.
func NewReader ¶
NewReader creates a Reader reading from r. NewReader only supports single volume archives. Multi-volume archives must use OpenReader.
func (*Reader) Next ¶
func (r *Reader) Next() (*FileHeader, error)
Next advances to the next file in the archive.