@@ -27,22 +27,23 @@ public async Task ExtractAsync(FileInfo nosFile, string directory, bool rename)
2727 {
2828 async Task WriteFile ( string fileName , MemoryStream decryptedContent )
2929 {
30- FileStream fileStream ;
3130 if ( rename && fileName . Contains ( "." ) )
3231 {
3332 var name = fileName . Substring ( 0 , fileName . IndexOf ( '.' ) ) ;
3433 var ext = fileName . Substring ( fileName . IndexOf ( '.' ) ) ;
35- fileStream =
34+ await using var fileStream =
3635 File . Create (
3736 $ "{ directory } { name } { nosFile . Name . Substring ( nosFile . Name . LastIndexOf ( '_' ) , 3 ) } { ext } ") ;
37+ decryptedContent . Seek ( 0 , SeekOrigin . Begin ) ;
38+ await decryptedContent . CopyToAsync ( fileStream ) ;
3839 }
3940 else
4041 {
41- fileStream = File . Create ( $ "{ directory } { fileName } ") ;
42+ await using var fileStream = File . Create ( $ "{ directory } { fileName } ") ;
43+ decryptedContent . Seek ( 0 , SeekOrigin . Begin ) ;
44+ await decryptedContent . CopyToAsync ( fileStream ) ;
4245 }
43-
44- decryptedContent . Seek ( 0 , SeekOrigin . Begin ) ;
45- await decryptedContent . CopyToAsync ( fileStream ) ;
46+
4647 }
4748
4849 try
@@ -69,7 +70,7 @@ async Task WriteFile(string fileName, MemoryStream decryptedContent)
6970 currentIndex += 4 ;
7071 var compressedDataSize = BitConverter . ToInt32 ( fsSource . Skip ( currentIndex ) . Take ( 4 ) . ToArray ( ) ) ;
7172 currentIndex += 5 ;
72- var outputStream = new MemoryStream ( ) ;
73+ await using var outputStream = new MemoryStream ( ) ;
7374 var bigEndian = fsSource . Skip ( currentIndex ) . Take ( dataSize + compressedDataSize ) . ToArray ( ) ;
7475 await using var compressedStream = new MemoryStream ( bigEndian ) ;
7576 await using var inputStream = new InflaterInputStream ( compressedStream ) ;
@@ -95,7 +96,7 @@ async Task WriteFile(string fileName, MemoryStream decryptedContent)
9596 var fileContent = fsSource . Skip ( currentIndex ) . Take ( fileSize ) . ToArray ( ) ;
9697 currentIndex += fileSize ;
9798
98- var decryptedContent = new MemoryStream ( DecryptDat ( fileContent ) ) ;
99+ await using var decryptedContent = new MemoryStream ( DecryptDat ( fileContent ) ) ;
99100 await WriteFile ( fileName , decryptedContent ) ;
100101 }
101102 }
0 commit comments