def insert_files(self, rootpath, directoryInFilter=None, directoryExFilter=None, compileInFilter=None, compileExFilter=None, contentInFilter=None, contentExFilter=None):
        directoryInFilter = self.DirectoryInFilter if directoryInFilter is None else directoryInFilter
        directoryExFilter = self.DirectoryExFilter if directoryExFilter is None else directoryExFilter
        compileInFilter = self.CompileInFilter if compileInFilter is None else compileInFilter
        compileExFilter = self.CompileExFilter if compileExFilter is None else compileExFilter
        contentInFilter = self.ContentInFilter if contentInFilter is None else contentInFilter
        contentExFilter = self.ContentExFilter if contentExFilter is None else contentExFilter
        def filter(text, filters, explicit):
            if explicit:
                return any(fnmatch.fnmatch(text, f) for f in filters)
            return not filters or any(fnmatch.fnmatch(text, f) for f in filters)
        for root, dirnames, filenames in os.walk(rootpath):
            searchdir = os.path.normpath(os.path.normcase(root))
            if filter(searchdir, directoryExFilter, True):
                dirnames[:] = []
            elif filter(searchdir, directoryInFilter, False):
                for filepath in [os.path.join(root, filename) for filename in filenames]:
                    if filter(filepath, compileInFilter, False) and not filter(filepath, compileExFilter, True):
                        self.CompileFiles.append(filepath)
                    elif filter(filepath, contentInFilter, False) and not filter(filepath, contentExFilter, True):
                        self.ContentFiles.append(filepath)