Ver Fonte

fix: ReadAsBytes 不兼容正在使用中的文件

龙腾猫跃 há 5 meses atrás
pai
commit
a10ec00951
1 ficheiros alterados com 6 adições e 2 exclusões
  1. 6 2
      Shared/Utils/FileUtils.cs

+ 6 - 2
Shared/Utils/FileUtils.cs

@@ -14,8 +14,12 @@ public static class FileUtils {
     /// <summary>
     /// 读取文件中的所有内容。
     /// </summary>
-    public static byte[] ReadAsBytes(string filePath)
-        => File.ReadAllBytes(PathUtils.WithLongPath(filePath));
+    public static byte[] ReadAsBytes(string filePath) {
+        using Stream fs = ReadAsStream(filePath); // 不能使用 File.ReadAllBytes,它不指定 FileShare.ReadWrite,会在文件被占用时抛出异常
+        using MemoryStream ms = new();
+        fs.CopyTo(ms);
+        return ms.ToArray();
+    }
 
     /// <summary>
     /// 读取文件中的所有内容。