This commit is contained in:
tamakyi
2026-09-25 13:16:54 +08:00
commit 36fe7a978c
33 changed files with 9214 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
//go:build !windows
package main
import (
"path/filepath"
"regexp"
"unicode/utf8"
)
// 文件名按字节的长度上限,留几个字节给后面追加的扩展名
const maxFilenameBytes = 250
// 转换文件名和限制文件名长度,添加保存文件夹的路径
func transFilename(filename string) string {
// 转换文件名不允许的特殊字符
re := regexp.MustCompile(`[<>:"/\\|?*\r\n]`)
filename = re.ReplaceAllString(filename, "-")
// linux 和 macOS 下文件名有字节数上限,按字节截断时不能把一个多字节字符切成两半
if len(filename) > maxFilenameBytes {
cut := maxFilenameBytes
for cut > 0 && !utf8.RuneStart(filename[cut]) {
cut--
}
filename = filename[:cut]
}
return filepath.Join(recordingDir(), filename)
}