ZippedFile Constructor(AbstractFile,String)
Initializes a new instance of the
ZippedFile class.
The code below shows a possible loss of data:
DiskFile source1 = new DiskFile( @"D:\First.txt" );
DiskFile source2 = new DiskFile( @"D:\Second.txt" );
DiskFile file1 = new DiskFile( @"D:\Danger.zip" );
DiskFile file2 = new DiskFile( @"D:\Danger.zip" );
ZipArchive zip1 = new ZipArchive( file1 );
ZipArchive zip2 = new ZipArchive( file2 );
zip1.BeginUpdate();
source1.CopyTo( zip1, true );
zip2.BeginUpdate();
source2.CopyTo( zip2, true );
zip2.EndUpdate(); // Zip file updated with "Second.txt"
zip1.EndUpdate(); // Zip file updated with "First.txt" but "Second.txt" gets lost
The correct may to deal with many instances of a ZipArchive is:
DiskFile source1 = new DiskFile( @"D:\First.txt" );
DiskFile source2 = new DiskFile( @"D:\Second.txt" );
DiskFile singleFile = new DiskFile( @"D:\Danger.zip" );
ZipArchive zip1 = new ZipArchive( singleFile );
ZipArchive zip2 = new ZipArchive( singleFile );
zip1.BeginUpdate();
source1.CopyTo( zip1, true );
zip2.BeginUpdate();
source2.CopyTo( zip2, true );
zip2.EndUpdate(); // Zip file not updated right away
zip1.EndUpdate(); // Zip file updated with both "First.txt" and "Second.txt"
.NET: net5.0, net5.0-windows, net6.0, net6.0-macos, net6.0-windows, net7.0, net7.0-macos, net7.0-windows, net8.0, net8.0-browser, net8.0-macos, net8.0-windows, net9.0, net9.0-browser, net9.0-macos, net9.0-windows, net10.0, net10.0-browser, net10.0-macos, net10.0-windows.
.NET Standard: netstandard2.0, netstandard2.1
.NET Framework: net20, net35, net40, net403, net45, net451, net452, net46, net461, net462, net463, net47, net471, net472, net48, net481.