def __extract_directory(self, path, files, destination):
<EOL>destination_path = os.path.join(destination, path)<EOL>if not os.path.exists(destination_path):<EOL><INDENT>os.makedirs(destination_path)<EOL><DEDENT>for name, contents in files.items():<EOL><INDENT>item_path = os.path.join(path, name)<EOL>if '<STR_LIT>' in contents:<EOL><INDENT>self.__extract_directory(<EOL>item_path,<EOL>contents['<STR_LIT>'],<EOL>destination<EOL>)<EOL>continue<EOL><DEDENT>self.__extract_file(item_path, contents, destination)<EOL><DEDENT>
Extracts a single directory to the specified directory on disk.

        Args:
            path (str):
                Relative (to the root of the archive) path of the directory
                to extract.

            files (dict):
                A dictionary of files from a *.asar file header.

            destination (str):
                The path to extract the files to.