public void checkCbolOriginalDirV4() {
        Path dir = Paths.get(CBOL_HOME);

//        List<String> books = new ArrayList<>();
        Set<String> books = new HashSet<>();

        StringBuilder sb;
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
            for (Path file : stream) {
                sb = new StringBuilder();
                sb.append(file.getFileName().toString());
                if (sb.toString().startsWith("unv_")) {
                    sb.delete(0, 4); // remove leading unv_
                    sb.delete(sb.length() - 5, sb.length()); // remove .html
//                    int pos = sb.indexOf("_");// position of _ underscore
//                    System.err.println(" _ is at ?" + pos);

                    sb.delete(sb.indexOf("_"), sb.length()); // remove .html
                    
//                    System.err.println("book is " + sb.toString());

                    books.add(sb.toString());
                }
            }
        } catch (IOException | DirectoryIteratorException x) {
            // IOException can never be thrown by the iteration.
            // In this snippet, it can only be thrown by newDirectoryStream.
            System.err.println(x);
        }

       // Collections.sort(books);
        int k=0;
        for (String book : books) {
            System.out.println("cnt="+(++k)+" "+book);

        }

    }