遍历一个文件夹及其子目录下的html文件,生成sitemap.xml
go
package main
import (
"fmt"
"os"
"path/filepath"
"strings"
)
func main() {
// 指定要遍历的文件夹
htmlDir := `E:\workPlace\project\AITools\web-ssg\.output\public`
// 创建sitemap.xml文件
smFile, err := os.Create("sitemap.xml")
if err != nil {
fmt.Println("Error creating sitemap.xml:", err)
return
}
defer smFile.Close()
// 写入sitemap.xml文件的头部
smFile.WriteString(`<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
`)
// 遍历HTML文件,生成sitemap.xml文件的内容
err = filepath.Walk(htmlDir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() && strings.HasSuffix(info.Name(), ".html") {
relPath, err := filepath.Rel(htmlDir, path)
if err != nil {
return err
}
// 获取文件的修改时间
lastmod := info.ModTime().Format("2006-01-02")
// 写入sitemap.xml文件的内容
smFile.WriteString(fmt.Sprintf(`<url>
<loc>https://www.toolsj.cn/%s</loc>
<lastmod>%s</lastmod>
</url>
`, relPath, lastmod))
}
return nil
})
if err != nil {
fmt.Println("Error walking through directory:", err)
return
}
// 写入sitemap.xml文件的尾部
smFile.WriteString(`</urlset>
`)
fmt.Println("sitemap.xml generated successfully.")
}