i just write a header containing length, filename and offset for all the files which i then stuff into the same file. no compression going on though i use a stream based approach and could easily change the memorystreams to be zlib-streams