public static TreeMap<Long, File> getNumericalOrderFilesWithNumericalUnderscoreFilenames_TreeMap(
            File[] files,
            String underscore) {
        TreeMap<Long, File> result = new TreeMap<Long, File>();
        String filename;
        String[] split;
        for (File file : files) {
            filename = file.getName();
            if (filename.contains(underscore)) {
                split = filename.split("_");
                if (split.length <= 2) {
                    long start;
                    try {
                        start = Long.parseLong(split[0]);
                        if (split.length == 2) {
                            Long.parseLong(split[1]);
                        }
                        result.put(start, file);
                    } catch (NumberFormatException a_NumberFormatException) {
                        // Ignore
                    }
                }
            } else {
                try {
                    long name = new Long(filename);
                    result.put(name, file);
                } catch (NumberFormatException a_NumberFormatException) {
                    // Ignore
                }
            }
        }
        return result;
    }