A system and method for storing computer files in a destination file is
described, which may be an incremental backup system. File headers
related to the files may be stored in a file index separate from a data
file, or subsequent versions may be stored in the same data file while
maintaining earlier versions. File headers may include locations of
files, checksums, metadata about individual blocks corresponding to the
data files. A system may include a client application program stored on a
client computer, a network, and a server software program on a
destination computer. Embodiments may include compression, encryption, or
both, performed by the client application program. Files may be divided
into blocks, and metadata may include locations of blocks. Files may be
restored from the destination computer to the source computer.