Browse Source

优化SaveFile

懒得勤快 8 months ago
parent
commit
69e6e8ed53
2 changed files with 12 additions and 2 deletions
  1. 1 1
      Directory.Build.props
  2. 11 1
      Masuit.Tools.Abstractions/Files/FileExt.cs

+ 1 - 1
Directory.Build.props

@@ -1,6 +1,6 @@
 <Project>
 <Project>
  <PropertyGroup>
  <PropertyGroup>
-   <Version>2025.1.1</Version>
+   <Version>2025.1.2</Version>
    <Deterministic>true</Deterministic>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  </PropertyGroup>
 </Project>
 </Project>

+ 11 - 1
Masuit.Tools.Abstractions/Files/FileExt.cs

@@ -46,6 +46,11 @@ namespace Masuit.Tools.Files
         public static void SaveFile(this Stream ms, string filename)
         public static void SaveFile(this Stream ms, string filename)
         {
         {
             ms.Seek(0, SeekOrigin.Begin);
             ms.Seek(0, SeekOrigin.Begin);
+            var dir = Path.GetDirectoryName(filename);
+            if (!Directory.Exists(dir))
+            {
+                Directory.CreateDirectory(dir);
+            }
             using var fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
             using var fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
             var stream = new BufferedStream(ms, 1048576);
             var stream = new BufferedStream(ms, 1048576);
             stream.CopyTo(fs);
             stream.CopyTo(fs);
@@ -60,6 +65,11 @@ namespace Masuit.Tools.Files
         public static async Task SaveFileAsync(this Stream ms, string filename)
         public static async Task SaveFileAsync(this Stream ms, string filename)
         {
         {
             ms.Seek(0, SeekOrigin.Begin);
             ms.Seek(0, SeekOrigin.Begin);
+            var dir = Path.GetDirectoryName(filename);
+            if (!Directory.Exists(dir))
+            {
+                Directory.CreateDirectory(dir);
+            }
             using var fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
             using var fs = new FileStream(filename, FileMode.Create, FileAccess.Write);
             var stream = new BufferedStream(ms, 1048576);
             var stream = new BufferedStream(ms, 1048576);
             await stream.CopyToAsync(fs);
             await stream.CopyToAsync(fs);
@@ -122,4 +132,4 @@ namespace Masuit.Tools.Files
             return sb.ToString();
             return sb.ToString();
         }
         }
     }
     }
-}
+}