@@ -1066,7 +1066,7 @@ private long TestLocalHeader(ZipEntry entry, HeaderTest tests)
1066
1066
bool testData = ( tests & HeaderTest . Extract ) != 0 ;
1067
1067
1068
1068
var entryAbsOffset = offsetOfFirstEntry + entry . Offset ;
1069
-
1069
+
1070
1070
baseStream_ . Seek ( entryAbsOffset , SeekOrigin . Begin ) ;
1071
1071
var signature = ( int ) ReadLEUint ( ) ;
1072
1072
@@ -3826,7 +3826,7 @@ private void MakeBytesAvailable()
3826
3826
/// </summary>
3827
3827
/// <param name="zipString">The <see cref="ZipString"/> to convert to a string.</param>
3828
3828
/// <returns>The textual equivalent for the input value.</returns>
3829
- static public implicit operator string ( ZipString zipString )
3829
+ public static implicit operator string ( ZipString zipString )
3830
3830
{
3831
3831
zipString . MakeTextAvailable ( ) ;
3832
3832
return zipString . comment_ ;
@@ -4463,7 +4463,7 @@ public interface IArchiveStorage
4463
4463
/// <summary>
4464
4464
/// An abstract <see cref="IArchiveStorage"/> suitable for extension by inheritance.
4465
4465
/// </summary>
4466
- abstract public class BaseArchiveStorage : IArchiveStorage
4466
+ public abstract class BaseArchiveStorage : IArchiveStorage
4467
4467
{
4468
4468
#region Constructors
4469
4469
@@ -4577,18 +4577,8 @@ public DiskArchiveStorage(ZipFile file)
4577
4577
/// <returns>Returns the temporary output stream.</returns>
4578
4578
public override Stream GetTemporaryOutput ( )
4579
4579
{
4580
- if ( temporaryName_ != null )
4581
- {
4582
- temporaryName_ = GetTempFileName ( temporaryName_ , true ) ;
4583
- temporaryStream_ = File . Open ( temporaryName_ , FileMode . OpenOrCreate , FileAccess . Write , FileShare . None ) ;
4584
- }
4585
- else
4586
- {
4587
- // Determine where to place files based on internal strategy.
4588
- // Currently this is always done in system temp directory.
4589
- temporaryName_ = Path . GetTempFileName ( ) ;
4590
- temporaryStream_ = File . Open ( temporaryName_ , FileMode . OpenOrCreate , FileAccess . Write , FileShare . None ) ;
4591
- }
4580
+ temporaryName_ = PathUtils . GetTempFileName ( temporaryName_ ) ;
4581
+ temporaryStream_ = File . Open ( temporaryName_ , FileMode . OpenOrCreate , FileAccess . Write ) ;
4592
4582
4593
4583
return temporaryStream_ ;
4594
4584
}
@@ -4601,20 +4591,19 @@ public override Stream GetTemporaryOutput()
4601
4591
public override Stream ConvertTemporaryToFinal ( )
4602
4592
{
4603
4593
if ( temporaryStream_ == null )
4604
- {
4605
4594
throw new ZipException ( "No temporary stream has been created" ) ;
4606
- }
4607
4595
4608
- string moveTempName = GetTempFileName ( fileName_ , false ) ;
4596
+ string moveTempName = PathUtils . GetTempFileName ( fileName_ ) ;
4609
4597
bool newFileCreated = false ;
4610
4598
4611
-
4612
4599
Stream result ;
4613
4600
try
4614
4601
{
4615
4602
temporaryStream_ . Dispose ( ) ;
4603
+
4616
4604
File . Move ( fileName_ , moveTempName ) ;
4617
4605
File . Move ( temporaryName_ , fileName_ ) ;
4606
+
4618
4607
newFileCreated = true ;
4619
4608
File . Delete ( moveTempName ) ;
4620
4609
@@ -4645,12 +4634,10 @@ public override Stream MakeTemporaryCopy(Stream stream)
4645
4634
{
4646
4635
stream . Dispose ( ) ;
4647
4636
4648
- temporaryName_ = GetTempFileName ( fileName_ , true ) ;
4637
+ temporaryName_ = PathUtils . GetTempFileName ( fileName_ ) ;
4649
4638
File . Copy ( fileName_ , temporaryName_ , true ) ;
4650
4639
4651
- temporaryStream_ = new FileStream ( temporaryName_ ,
4652
- FileMode . Open ,
4653
- FileAccess . ReadWrite ) ;
4640
+ temporaryStream_ = new FileStream ( temporaryName_ , FileMode . Open , FileAccess . ReadWrite ) ;
4654
4641
return temporaryStream_ ;
4655
4642
}
4656
4643
@@ -4666,18 +4653,12 @@ public override Stream OpenForDirectUpdate(Stream stream)
4666
4653
if ( ( stream == null ) || ! stream . CanWrite )
4667
4654
{
4668
4655
if ( stream != null )
4669
- {
4670
4656
stream . Dispose ( ) ;
4671
- }
4672
4657
4673
- result = new FileStream ( fileName_ ,
4674
- FileMode . Open ,
4675
- FileAccess . ReadWrite ) ;
4658
+ result = new FileStream ( fileName_ , FileMode . Open , FileAccess . ReadWrite ) ;
4676
4659
}
4677
4660
else
4678
- {
4679
4661
result = stream ;
4680
- }
4681
4662
4682
4663
return result ;
4683
4664
}
@@ -4688,61 +4669,11 @@ public override Stream OpenForDirectUpdate(Stream stream)
4688
4669
public override void Dispose ( )
4689
4670
{
4690
4671
if ( temporaryStream_ != null )
4691
- {
4692
4672
temporaryStream_ . Dispose ( ) ;
4693
- }
4694
4673
}
4695
4674
4696
4675
#endregion IArchiveStorage Members
4697
4676
4698
- #region Internal routines
4699
-
4700
- private static string GetTempFileName ( string original , bool makeTempFile )
4701
- {
4702
- string result = null ;
4703
-
4704
- if ( original == null )
4705
- {
4706
- result = Path . GetTempFileName ( ) ;
4707
- }
4708
- else
4709
- {
4710
- int counter = 0 ;
4711
- int suffixSeed = DateTime . Now . Second ;
4712
-
4713
- while ( result == null )
4714
- {
4715
- counter += 1 ;
4716
- string newName = string . Format ( "{0}.{1}{2}.tmp" , original , suffixSeed , counter ) ;
4717
- if ( ! File . Exists ( newName ) )
4718
- {
4719
- if ( makeTempFile )
4720
- {
4721
- try
4722
- {
4723
- // Try and create the file.
4724
- using ( FileStream stream = File . Create ( newName ) )
4725
- {
4726
- }
4727
- result = newName ;
4728
- }
4729
- catch
4730
- {
4731
- suffixSeed = DateTime . Now . Second ;
4732
- }
4733
- }
4734
- else
4735
- {
4736
- result = newName ;
4737
- }
4738
- }
4739
- }
4740
- }
4741
- return result ;
4742
- }
4743
-
4744
- #endregion Internal routines
4745
-
4746
4677
#region Instance Fields
4747
4678
4748
4679
private Stream temporaryStream_ ;
0 commit comments