ICSharpCode.SharpZipLib.Zip.DiskArchiveStorage.ConvertTemporaryToFinal C# (CSharp) Method

ConvertTemporaryToFinal() public method

Converts a temporary Stream to its final form.
public ConvertTemporaryToFinal ( ) : Stream
return Stream
        public override Stream ConvertTemporaryToFinal() {
            if (temporaryStream_==null) {
                throw new ZipException("No temporary stream has been created");
            }

            Stream result=null;

            string moveTempName=GetTempFileName(fileName_, false);
            bool newFileCreated=false;

            try {
                temporaryStream_.Dispose();
                File.Move(fileName_, moveTempName);
                File.Move(temporaryName_, fileName_);
                newFileCreated=true;
                File.Delete(moveTempName);

                result=File.Open(fileName_, FileMode.Open, FileAccess.Read, FileShare.Read);
            } catch (Exception) {
                result=null;

                // Try to roll back changes...
                if (!newFileCreated) {
                    File.Move(moveTempName, fileName_);
                    File.Delete(temporaryName_);
                }

                throw;
            }

            return result;
        }