diff --git a/DownKyi.Core/Utils/Format.cs b/DownKyi.Core/Utils/Format.cs index 17d3547..178ca78 100644 --- a/DownKyi.Core/Utils/Format.cs +++ b/DownKyi.Core/Utils/Format.cs @@ -125,36 +125,15 @@ public static class Format public static string FormatFileName(string originName) { var destName = originName; - - // Windows中不能作为文件名的字符 - // destName = destName.Replace("\\", " "); - // destName = destName.Replace("/", " "); - // destName = destName.Replace(":", " "); - // destName = destName.Replace("*", " "); - // destName = destName.Replace("?", " "); - // destName = destName.Replace("\"", " "); - // destName = destName.Replace("<", " "); - // destName = destName.Replace(">", " "); - // destName = destName.Replace("|", " "); - - // 转义字符 - // destName = destName.Replace("\a", ""); - // destName = destName.Replace("\b", ""); - // destName = destName.Replace("\f", ""); - // destName = destName.Replace("\n", ""); - // destName = destName.Replace("\r", ""); - // destName = destName.Replace("\t", ""); - // destName = destName.Replace("\v", ""); destName = Path.GetInvalidFileNameChars().Aggregate(destName, (current, c) => current.Replace(c.ToString(), string.Empty)); - // 控制字符 + var cleanedName = destName + .SkipWhile(c => c == ' ' || c == '.') + .Reverse() + .SkipWhile(c => c == ' ' || c == '.') + .Reverse() + .ToArray(); - - // 移除前导和尾部的空白字符、dot符 - destName = destName.Trim(); - destName = destName.Trim('.'); - - // 如果只有空白字符、dot符 - return destName is " " or "." ? "[empty title]" : destName; + return new string(cleanedName.Length == 0 ? "[empty title]" : cleanedName); } } \ No newline at end of file