using boost's file_source to read from file, we store directory blocks and information and all entry headers in memory