def get_files(cls, folder, session_id=''):
        """ Retrieve the list of files the plugin can work on.
        Find this list based on the files name, files extension or even
        actually by reading in the file.
        If a session identifier is specified it will restrict the list
        of files returned to those with this session identifier in their
        name.

        :arg folder: the path to the folder containing the files to
            check. This folder may contain sub-folders.
        :kwarg session_id: the session identifier of the MapQTL output
            to process.

        """
        filelist = []
        if folder is None or not os.path.isdir(folder):
            return filelist
        if session_id is None:
            session_id = ''
        for root, dirs, files in os.walk(folder):
            for filename in files:
                if filename.startswith('Session %s' % session_id) \
                        and filename.endswith('.mqo'):
                    filename = os.path.join(root, filename)
                    filelist.append(filename)
        return filelist