فهرست منبع

fix: ToShortPath 错误地展开了相对路径

龙腾猫跃 5 ماه پیش
والد
کامیت
f2d4070b6a
3فایلهای تغییر یافته به همراه8 افزوده شده و 7 حذف شده
  1. 5 5
      Shared/General/Logger.cs
  2. 1 0
      Shared/Utils/HashUtils.cs
  3. 2 2
      Shared/Utils/PathUtils.cs

+ 5 - 5
Shared/General/Logger.cs

@@ -98,7 +98,7 @@ public static class Logger {
     // C#:仅当实际需要输出日志时,才格式化内插字符串,以优化性能
 
     public static void Log(LogLevel level, [InterpolatedStringHandlerArgument("level")] ref LogInterpolatedStringHandler handler, LogBehavior behavior = LogBehavior.None, [CallerFilePath] string filePath = "") {
-        if (handler.IsEnabled) Instance.Log(null, handler.ToStringAndClear(), level, behavior, filePath);
+        if (handler.isEnabled) Instance.Log(null, handler.ToStringAndClear(), level, behavior, filePath);
     }
     public static void Trace(ref LogInterpolatedStringHandler<TraceLogLevel> handler, LogBehavior behavior = LogBehavior.None, [CallerFilePath] string filePath = "") {
         if (handler.IsEnabled) Instance.Log(null, handler.ToStringAndClear(), LogLevel.Trace, behavior, filePath);
@@ -116,10 +116,10 @@ public static class Logger {
     [InterpolatedStringHandler]
     public ref struct LogInterpolatedStringHandler {
         private StringBuilder? _sb;
-        public readonly bool IsEnabled;
+        public readonly bool isEnabled;
         public LogInterpolatedStringHandler(int literalLength, int formattedCount, LogLevel level, out bool isEnabled) {
-            IsEnabled = isEnabled = Logger.Instance.MinLevel <= level;
-            _sb = IsEnabled ? new StringBuilder(literalLength) : null;
+            this.isEnabled = isEnabled = Logger.Instance.MinLevel <= level;
+            _sb = this.isEnabled ? new StringBuilder(literalLength) : null;
         }
         public void AppendLiteral(string value) => _sb?.Append(value);
         public void AppendFormatted<T>(T value) => _sb?.Append(value?.ToString());
@@ -150,7 +150,7 @@ public static class Logger {
     [InterpolatedStringHandler]
     public ref struct LogInterpolatedStringHandler<TLevel> where TLevel : struct, ILogLevelProvider {
         private LogInterpolatedStringHandler _inner;
-        public bool IsEnabled => _inner.IsEnabled;
+        public bool IsEnabled => _inner.isEnabled;
         public LogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled) => _inner = new(literalLength, formattedCount, default(TLevel).Level, out isEnabled);
         public void AppendLiteral(string value) => _inner.AppendLiteral(value);
         public void AppendFormatted<T>(T value) => _inner.AppendFormatted(value);

+ 1 - 0
Shared/Utils/HashUtils.cs

@@ -16,6 +16,7 @@ public static class HashUtils {
             HashMethod.Sha512 => SHA512.Create(),
             _ => throw new ArgumentOutOfRangeException(nameof(method))
         };
+        Logger.Trace($"计算文件 {method}:{filePath}");
         return BitConverter.ToString(hashImpl.ComputeHash(file)).Replace("-", "").ToLower();
     }
 

+ 2 - 2
Shared/Utils/PathUtils.cs

@@ -21,12 +21,12 @@ public static class PathUtils {
 
     /// <summary>
     /// 若路径较长,则尽量将其转换为短路径。
-    /// <para/>结果的开头不含 <c>\\?\</c>、结尾不含分隔符。
+    /// <para/>结果的开头不含 <c>\\?\</c>,结尾不含分隔符。
     /// </summary>
     public static string ToShortPath(string fullName, bool keepFileName = false) {
         if (string.IsNullOrEmpty(fullName)) return fullName;
-        fullName = PathUtils.ForCompare(fullName);
         if (!fullName.Contains(":")) return fullName;
+        fullName = PathUtils.ForCompare(fullName);
         if (fullName.Length <= 200) return fullName;
         // 保留文件名
         string pathToKeep = "";