import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Date; public class SitemapGenerator { // Base URL of your site private static final String BASE_URL = "https://example.com/"; public static void main(String[] args) { File folder = new File("path/to/your/web/root"); // Local folder containing site files StringBuilder sitemap = new StringBuilder(); // XML header sitemap.append("\n"); sitemap.append("\n"); // Recursively scan folder addFilesToSitemap(folder, sitemap, folder.getAbsolutePath()); sitemap.append(""); // Save to file try (FileWriter writer = new FileWriter("sitemap.xml")) { writer.write(sitemap.toString()); System.out.println("Sitemap generated successfully."); } catch (IOException e) { System.err.println("Error writing sitemap: " + e.getMessage()); } } private static void addFilesToSitemap(File folder, StringBuilder sitemap, String rootPath) { for (File file : folder.listFiles()) { if (file.isDirectory()) { addFilesToSitemap(file, sitemap, rootPath); } else if (file.getName().endsWith(".html")) { // Only HTML files String relativePath = file.getAbsolutePath().substring(rootPath.length() + 1); String url = BASE_URL + URLEncoder.encode(relativePath.replace("\\", "/"), StandardCharsets.UTF_8); sitemap.append(" \n"); sitemap.append(" ").append(url).append("\n"); sitemap.append(" ").append(new Date()).append("\n"); sitemap.append(" \n"); } } } }