diff --git a/SabreTools.Serialization/Serializers/AttractMode.cs b/SabreTools.Serialization/Serializers/AttractMode.cs index 0bd4a5cd..0e8814b6 100644 --- a/SabreTools.Serialization/Serializers/AttractMode.cs +++ b/SabreTools.Serialization/Serializers/AttractMode.cs @@ -112,8 +112,10 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); + return true; } diff --git a/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs b/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs index 84c55fc0..38a1ebb6 100644 --- a/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs +++ b/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs @@ -44,8 +44,10 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); + return true; } diff --git a/SabreTools.Serialization/Serializers/ClrMamePro.cs b/SabreTools.Serialization/Serializers/ClrMamePro.cs index ac336ea0..b92da558 100644 --- a/SabreTools.Serialization/Serializers/ClrMamePro.cs +++ b/SabreTools.Serialization/Serializers/ClrMamePro.cs @@ -57,8 +57,10 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); + return true; } diff --git a/SabreTools.Serialization/Serializers/Hashfile.cs b/SabreTools.Serialization/Serializers/Hashfile.cs index b911c5b8..af9071da 100644 --- a/SabreTools.Serialization/Serializers/Hashfile.cs +++ b/SabreTools.Serialization/Serializers/Hashfile.cs @@ -59,8 +59,10 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = System.IO.File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); + return true; } diff --git a/SabreTools.Serialization/Serializers/JsonFile.cs b/SabreTools.Serialization/Serializers/JsonFile.cs index a69fa1a8..808327b3 100644 --- a/SabreTools.Serialization/Serializers/JsonFile.cs +++ b/SabreTools.Serialization/Serializers/JsonFile.cs @@ -59,8 +59,9 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); return true; } diff --git a/SabreTools.Serialization/Serializers/SeparatedValue.cs b/SabreTools.Serialization/Serializers/SeparatedValue.cs index 39e10737..55130bb8 100644 --- a/SabreTools.Serialization/Serializers/SeparatedValue.cs +++ b/SabreTools.Serialization/Serializers/SeparatedValue.cs @@ -100,8 +100,10 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); + return true; } diff --git a/SabreTools.Serialization/Serializers/XmlFile.cs b/SabreTools.Serialization/Serializers/XmlFile.cs index cd5fd504..3aa4bc13 100644 --- a/SabreTools.Serialization/Serializers/XmlFile.cs +++ b/SabreTools.Serialization/Serializers/XmlFile.cs @@ -64,8 +64,9 @@ namespace SabreTools.Serialization.Serializers if (stream == null) return false; - using var fs = File.OpenWrite(path); + using var fs = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); stream.CopyTo(fs); + fs.Flush(); return true; } diff --git a/SabreTools.Serialization/Wrappers/BFPK.Extraction.cs b/SabreTools.Serialization/Wrappers/BFPK.Extraction.cs index 25ccbfc4..b9eb3d20 100644 --- a/SabreTools.Serialization/Wrappers/BFPK.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/BFPK.Extraction.cs @@ -78,7 +78,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using FileStream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); // Read the data block var data = ReadRangeFromSource(offset, compressedSize); diff --git a/SabreTools.Serialization/Wrappers/BSP.Extraction.cs b/SabreTools.Serialization/Wrappers/BSP.Extraction.cs index 04fa90b4..9fb5141e 100644 --- a/SabreTools.Serialization/Wrappers/BSP.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/BSP.Extraction.cs @@ -79,7 +79,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/BZip2.Extraction.cs b/SabreTools.Serialization/Wrappers/BZip2.Extraction.cs index 220ad279..c96153c9 100644 --- a/SabreTools.Serialization/Wrappers/BZip2.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/BZip2.Extraction.cs @@ -37,7 +37,7 @@ namespace SabreTools.Serialization.Wrappers Directory.CreateDirectory(directoryName); // Extract the file - using FileStream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); bz2File.CopyTo(fs); fs.Flush(); diff --git a/SabreTools.Serialization/Wrappers/CFB.Extraction.cs b/SabreTools.Serialization/Wrappers/CFB.Extraction.cs index a1de1461..3417289a 100644 --- a/SabreTools.Serialization/Wrappers/CFB.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/CFB.Extraction.cs @@ -88,7 +88,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using FileStream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/GCF.Extraction.cs b/SabreTools.Serialization/Wrappers/GCF.Extraction.cs index de3ce2b9..cce80c14 100644 --- a/SabreTools.Serialization/Wrappers/GCF.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/GCF.Extraction.cs @@ -87,7 +87,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); // Now read the data sequentially and write out while we have data left long fileSize = file.Size; diff --git a/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.Extraction.cs b/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.Extraction.cs index 9c837613..fe7b1cec 100644 --- a/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.Extraction.cs @@ -111,7 +111,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = System.IO.File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/InstallShieldCabinet.Extraction.cs b/SabreTools.Serialization/Wrappers/InstallShieldCabinet.Extraction.cs index 6e301577..0908afb7 100644 --- a/SabreTools.Serialization/Wrappers/InstallShieldCabinet.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/InstallShieldCabinet.Extraction.cs @@ -285,7 +285,7 @@ namespace SabreTools.Serialization.Wrappers return false; // Create the output file and hasher - FileStream output = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); var md5 = new HashWrapper(HashType.MD5); long readBytesLeft = (long)GetReadableBytes(fileDescriptor); @@ -313,7 +313,7 @@ namespace SabreTools.Serialization.Wrappers { Console.Error.WriteLine($"Failed to read {lengthArr.Length} bytes of file {index} ({GetFileName(index)}) from input cabinet file {fileDescriptor.Volume}"); reader.Dispose(); - output?.Close(); + fs?.Close(); return false; } @@ -324,7 +324,7 @@ namespace SabreTools.Serialization.Wrappers { Console.Error.WriteLine($"Failed to read {lengthArr.Length} bytes of file {index} ({GetFileName(index)}) from input cabinet file {fileDescriptor.Volume}"); reader.Dispose(); - output?.Close(); + fs?.Close(); return false; } @@ -343,7 +343,7 @@ namespace SabreTools.Serialization.Wrappers { Console.Error.WriteLine($"Decompression failed with code {result.ToZlibConstName()}. bytes_to_read={bytesToRead}, volume={fileDescriptor.Volume}, read_bytes={readBytes}"); reader.Dispose(); - output?.Close(); + fs?.Close(); return false; } @@ -360,7 +360,7 @@ namespace SabreTools.Serialization.Wrappers { Console.Error.WriteLine($"Failed to write {bytesToWrite} bytes from input cabinet file {fileDescriptor.Volume}"); reader.Dispose(); - output?.Close(); + fs?.Close(); return false; } @@ -371,7 +371,7 @@ namespace SabreTools.Serialization.Wrappers // Hash and write the next block bytesToWrite = Math.Min(bytesToWrite, writeBytesLeft); md5.Process(outputBuffer, 0, (int)bytesToWrite); - output?.Write(outputBuffer, 0, (int)bytesToWrite); + fs?.Write(outputBuffer, 0, (int)bytesToWrite); totalWritten += bytesToWrite; writeBytesLeft -= bytesToWrite; @@ -384,7 +384,7 @@ namespace SabreTools.Serialization.Wrappers // Finalize output values md5.Terminate(); reader?.Dispose(); - output?.Close(); + fs?.Close(); // Validate the data written, if required if (MajorVersion >= 6) @@ -422,7 +422,7 @@ namespace SabreTools.Serialization.Wrappers return false; // Create the output file - FileStream output = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); ulong bytesLeft = GetReadableBytes(fileDescriptor); byte[] outputBuffer = new byte[BUFFER_SIZE]; @@ -435,7 +435,7 @@ namespace SabreTools.Serialization.Wrappers { Console.Error.WriteLine($"Failed to read {bytesToWrite} bytes from input cabinet file {fileDescriptor.Volume}"); reader.Dispose(); - output?.Close(); + fs?.Close(); return false; } @@ -443,12 +443,12 @@ namespace SabreTools.Serialization.Wrappers bytesLeft -= (uint)bytesToWrite; // Write the next block - output.Write(outputBuffer, 0, (int)bytesToWrite); + fs.Write(outputBuffer, 0, (int)bytesToWrite); } // Finalize output values reader.Dispose(); - output?.Close(); + fs?.Close(); return true; } diff --git a/SabreTools.Serialization/Wrappers/LZKWAJ.Extraction.cs b/SabreTools.Serialization/Wrappers/LZKWAJ.Extraction.cs index 06a0dcd7..f4713e4d 100644 --- a/SabreTools.Serialization/Wrappers/LZKWAJ.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/LZKWAJ.Extraction.cs @@ -50,7 +50,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); decompressor.CopyTo(fs); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/LZQBasic.Extraction.cs b/SabreTools.Serialization/Wrappers/LZQBasic.Extraction.cs index 558cf214..ff40417c 100644 --- a/SabreTools.Serialization/Wrappers/LZQBasic.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/LZQBasic.Extraction.cs @@ -46,7 +46,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); decompressor.CopyTo(fs); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/LZSZDD.Extraction.cs b/SabreTools.Serialization/Wrappers/LZSZDD.Extraction.cs index b0a4ef10..68099964 100644 --- a/SabreTools.Serialization/Wrappers/LZSZDD.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/LZSZDD.Extraction.cs @@ -57,7 +57,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); decompressor.CopyTo(fs); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs b/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs index df360da9..fc0cf1ee 100644 --- a/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/MicrosoftCabinet.Extraction.cs @@ -236,7 +236,7 @@ namespace SabreTools.Serialization.Wrappers Directory.CreateDirectory(directoryName); // Open the output file for writing - using var fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(fileData, 0, fileData.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/PAK.Extraction.cs b/SabreTools.Serialization/Wrappers/PAK.Extraction.cs index eb84833d..ea295a84 100644 --- a/SabreTools.Serialization/Wrappers/PAK.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/PAK.Extraction.cs @@ -67,7 +67,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = System.IO.File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/PFF.Extraction.cs b/SabreTools.Serialization/Wrappers/PFF.Extraction.cs index a1877f2b..ec8e85aa 100644 --- a/SabreTools.Serialization/Wrappers/PFF.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/PFF.Extraction.cs @@ -65,7 +65,7 @@ namespace SabreTools.Serialization.Wrappers Directory.CreateDirectory(directoryName); // Create the output file - using FileStream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); // Read the data block var data = ReadRangeFromSource(offset, size); diff --git a/SabreTools.Serialization/Wrappers/Quantum.Extraction.cs b/SabreTools.Serialization/Wrappers/Quantum.Extraction.cs index 0e2cb772..5466f94f 100644 --- a/SabreTools.Serialization/Wrappers/Quantum.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/Quantum.Extraction.cs @@ -100,10 +100,9 @@ namespace SabreTools.Serialization.Wrappers // try // { // // Open the output file for writing - // using (Stream fs = File.OpenWrite(filename)) - // { - // fs.Write(data, 0, data.Length); - // } + // using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); + // fs.Write(data, 0, data.Length); + // fs.Flush(); // } // catch // { diff --git a/SabreTools.Serialization/Wrappers/SGA.Extraction.cs b/SabreTools.Serialization/Wrappers/SGA.Extraction.cs index 686ccfcb..3e9ecc10 100644 --- a/SabreTools.Serialization/Wrappers/SGA.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/SGA.Extraction.cs @@ -136,7 +136,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = System.IO.File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/SecuROMMatroschkaPackage.Extraction.cs b/SabreTools.Serialization/Wrappers/SecuROMMatroschkaPackage.Extraction.cs index e58bbfa3..90c5c761 100644 --- a/SabreTools.Serialization/Wrappers/SecuROMMatroschkaPackage.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/SecuROMMatroschkaPackage.Extraction.cs @@ -72,7 +72,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/VBSP.Extraction.cs b/SabreTools.Serialization/Wrappers/VBSP.Extraction.cs index 04127f6e..f14a7d0d 100644 --- a/SabreTools.Serialization/Wrappers/VBSP.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/VBSP.Extraction.cs @@ -79,7 +79,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/VPK.Extraction.cs b/SabreTools.Serialization/Wrappers/VPK.Extraction.cs index 1e118cee..8784718f 100644 --- a/SabreTools.Serialization/Wrappers/VPK.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/VPK.Extraction.cs @@ -130,7 +130,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/WAD3.Extraction.cs b/SabreTools.Serialization/Wrappers/WAD3.Extraction.cs index c8beb6f5..093e3eb8 100644 --- a/SabreTools.Serialization/Wrappers/WAD3.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/WAD3.Extraction.cs @@ -67,7 +67,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); } diff --git a/SabreTools.Serialization/Wrappers/XZ.Extraction.cs b/SabreTools.Serialization/Wrappers/XZ.Extraction.cs index 4510dd65..be953f1b 100644 --- a/SabreTools.Serialization/Wrappers/XZ.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/XZ.Extraction.cs @@ -44,7 +44,7 @@ namespace SabreTools.Serialization.Wrappers Directory.CreateDirectory(directoryName); // Extract the file - using FileStream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); xzFile.CopyTo(fs); fs.Flush(); diff --git a/SabreTools.Serialization/Wrappers/XZP.Extraction.cs b/SabreTools.Serialization/Wrappers/XZP.Extraction.cs index bf0fa5d5..5c98c28d 100644 --- a/SabreTools.Serialization/Wrappers/XZP.Extraction.cs +++ b/SabreTools.Serialization/Wrappers/XZP.Extraction.cs @@ -76,7 +76,7 @@ namespace SabreTools.Serialization.Wrappers try { // Open the output file for writing - using Stream fs = File.OpenWrite(filename); + using var fs = File.Open(filename, FileMode.Create, FileAccess.Write, FileShare.None); fs.Write(data, 0, data.Length); fs.Flush(); }