zip-archive-0.1.1.6: Library for creating and modifying zip archives.Source codeContentsIndex
Codec.Archive.Zip
Portabilityso far only tested on GHC
Stabilityunstable
MaintainerJohn MacFarlane < jgm at berkeley dot edu >
Contents
Data structures
Pure functions for working with zip archives
IO functions for working with zip archives
Description

The zip-archive library provides functions for creating, modifying, and extracting files from zip archives.

Certain simplifying assumptions are made about the zip archives: in particular, there is no support for encryption, zip files that span multiple disks, ZIP64, OS-specific file attributes, or compression methods other than Deflate. However, the library should be able to read the most common zip archives, and the archives it produces should be readable by all standard unzip programs.

As an example of the use of the library, a standalone zip archiver and extracter, Zip.hs, is provided in the source distribution.

For more information on the format of zip archives, consult http://www.pkware.com/documents/casestudies/APPNOTE.TXT

Synopsis
data Archive = Archive {
zEntries :: [Entry]
zSignature :: Maybe ByteString
zComment :: ByteString
}
data Entry = Entry {
eRelativePath :: FilePath
eCompressionMethod :: CompressionMethod
eLastModified :: Integer
eCRC32 :: Word32
eCompressedSize :: Word32
eUncompressedSize :: Word32
eExtraField :: ByteString
eFileComment :: ByteString
eInternalFileAttributes :: Word16
eExternalFileAttributes :: Word32
eCompressedData :: ByteString
}
data CompressionMethod
= Deflate
| NoCompression
data ZipOption
= OptRecursive
| OptVerbose
emptyArchive :: Archive
toArchive :: ByteString -> Archive
fromArchive :: Archive -> ByteString
filesInArchive :: Archive -> [FilePath]
addEntryToArchive :: Entry -> Archive -> Archive
deleteEntryFromArchive :: FilePath -> Archive -> Archive
findEntryByPath :: FilePath -> Archive -> Maybe Entry
fromEntry :: Entry -> ByteString
toEntry :: FilePath -> Integer -> ByteString -> Entry
readEntry :: [ZipOption] -> FilePath -> IO Entry
writeEntry :: [ZipOption] -> Entry -> IO ()
addFilesToArchive :: [ZipOption] -> Archive -> [FilePath] -> IO Archive
extractFilesFromArchive :: [ZipOption] -> Archive -> IO ()
Data structures
data Archive Source
Structured representation of a zip archive, including directory information and contents (in lazy bytestrings).
Constructors
Archive
zEntries :: [Entry]Files in zip archive
zSignature :: Maybe ByteStringDigital signature
zComment :: ByteStringComment for whole zip archive
show/hide Instances
data Entry Source
Representation of an archived file, including content and metadata.
Constructors
Entry
eRelativePath :: FilePathRelative path, using / as separator
eCompressionMethod :: CompressionMethodCompression method
eLastModified :: IntegerModification time (seconds since unix epoch)
eCRC32 :: Word32CRC32 checksum
eCompressedSize :: Word32Compressed size in bytes
eUncompressedSize :: Word32Uncompressed size in bytes
eExtraField :: ByteStringExtra field - unused by this library
eFileComment :: ByteStringFile comment - unused by this library
eInternalFileAttributes :: Word16Internal file attributes - unused by this library
eExternalFileAttributes :: Word32External file attributes (system-dependent)
eCompressedData :: ByteStringCompressed contents of file
show/hide Instances
data CompressionMethod Source
Compression methods.
Constructors
Deflate
NoCompression
show/hide Instances
data ZipOption Source
Options for addFilesToArchive and extractFilesFromArchive.
Constructors
OptRecursiveRecurse into directories when adding files
OptVerbosePrint information to stderr
show/hide Instances
emptyArchive :: ArchiveSource
A zip archive with no contents.
Pure functions for working with zip archives
toArchive :: ByteString -> ArchiveSource
Reads an Archive structure from a raw zip archive (in a lazy bytestring).
fromArchive :: Archive -> ByteStringSource
Writes an Archive structure to a raw zip archive (in a lazy bytestring).
filesInArchive :: Archive -> [FilePath]Source
Returns a list of files in a zip archive.
addEntryToArchive :: Entry -> Archive -> ArchiveSource
Adds an entry to a zip archive, or updates an existing entry.
deleteEntryFromArchive :: FilePath -> Archive -> ArchiveSource
Deletes an entry from a zip archive.
findEntryByPath :: FilePath -> Archive -> Maybe EntrySource
Returns Just the zip entry with the specified path, or Nothing.
fromEntry :: Entry -> ByteStringSource
Returns uncompressed contents of zip entry.
toEntrySource
:: FilePathFile path for entry
-> IntegerModification time for entry (seconds since unix epoch)
-> ByteStringContents of entry
-> Entry
Create an Entry with specified file path, modification time, and contents.
IO functions for working with zip archives
readEntry :: [ZipOption] -> FilePath -> IO EntrySource
Generates a Entry from a file or directory.
writeEntry :: [ZipOption] -> Entry -> IO ()Source
Writes contents of an Entry to a file.
addFilesToArchive :: [ZipOption] -> Archive -> [FilePath] -> IO ArchiveSource
Add the specified files to an Archive. If OptRecursive is specified, recursively add files contained in directories. If OptVerbose is specified, print messages to stderr.
extractFilesFromArchive :: [ZipOption] -> Archive -> IO ()Source
Extract all files from an Archive, creating directories as needed. If OptVerbose is specified, print messages to stderr. Note that the last-modified time is set correctly only in POSIX, not in Windows.
Produced by Haddock version 2.4.2