Jelajahi Sumber

fix: 长路径处理有误

龙腾猫跃 5 bulan lalu
induk
melakukan
7402647008
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      Shared/Utils/PathUtils.cs

+ 2 - 2
Shared/Utils/PathUtils.cs

@@ -49,10 +49,10 @@ public static class PathUtils {
 
 
         // 缩短路径
         // 缩短路径
         char[] buffer = new char[260];
         char[] buffer = new char[260];
-        int result = GetShortPathNameW(pathToShorten, buffer, buffer.Length);
+        int result = GetShortPathNameW(PathUtils.WithLongPath(pathToShorten), buffer, buffer.Length);
         if (result == 0) return fullName;
         if (result == 0) return fullName;
         string shortPath = new(buffer, 0, result);
         string shortPath = new(buffer, 0, result);
-        return Path.Combine(shortPath, pathToKeep);
+        return PathUtils.WithoutLongPath(Path.Combine(shortPath, pathToKeep));
     }
     }
     [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
     [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
     private static extern int GetShortPathNameW(string lpszLongPath, [Out] char[] buffer, int cchBuffer);
     private static extern int GetShortPathNameW(string lpszLongPath, [Out] char[] buffer, int cchBuffer);