public DataBase(final String dbDirectory, final TableProvider newProvider, final List<Class<?>> newTypes)
                throws IOException {
        name = new File(dbDirectory).getName();
        dataBaseDirectory = dbDirectory;
        provider = newProvider;

        if (newTypes != null) {
            types = newTypes;
            MySignature.setSignature(dataBaseDirectory, types);
        } else {
            types = MySignature.getSignature(dataBaseDirectory);
        }

        isCorrect();
        files = new DataBaseFile[256];
        loadFiles();
    }