feat: add NormalizePathname function and update task handling for parsed items

This commit is contained in:
krau
2025-08-24 10:28:50 +08:00
parent 9b3f955e48
commit 226c15ef08
5 changed files with 80 additions and 7 deletions

View File

@@ -3,6 +3,8 @@ package fsutil
import (
"os"
"path/filepath"
"strings"
"unicode"
"github.com/gabriel-vasile/mimetype"
)
@@ -55,3 +57,21 @@ func CreateFile(fp string) (*File, error) {
}
return &File{File: file}, nil
}
func NormalizePathname(s string) string {
specials := `\/:*?"<>|` + "\n\r\t"
var builder strings.Builder
for _, ch := range s {
if strings.ContainsRune(specials, ch) || unicode.IsControl(ch) {
builder.WriteRune('_')
} else {
builder.WriteRune(ch)
}
}
result := strings.TrimRightFunc(builder.String(), func(r rune) bool {
return r == '.' || r == '_' || unicode.IsSpace(r)
})
return result
}