/// <summary> /// Sort-of like a factory method, ForUpdate is used only when /// the application needs to update the zip entry metadata for /// a segmented zip file, when the starting segment is earlier /// than the ending segment, for a particular entry. /// </summary> /// <remarks> /// <para> /// The update is always contiguous, never rolls over. As a /// result, this method doesn't need to return a ZSS; it can /// simply return a FileStream. That's why it's "sort of" /// like a Factory method. /// </para> /// <para> /// Caller must Close/Dispose the stream object returned by /// this method. /// </para> /// </remarks> public static Stream ForUpdate(ZipSegmentedStreamManager manager, uint diskNumber) { // Console.WriteLine("ZSS: ForUpdate ({0})", // Path.GetFileName(fname)); // This class assumes that the update will not expand the // size of the segment. Update is used only for an in-place // update of zip metadata. It never will try to write beyond // the end of a segment. return(manager.OpenSegment(diskNumber, 0, true)); }
private void _SetReadStream() { if (_innerStream != null) { #if NETCF _innerStream.Close(); #else _innerStream.Dispose(); #endif } // Console.WriteLine("ZSS: SRS ({0})", // Path.GetFileName(CurrentName)); _innerStream = _manager.OpenSegment(CurrentSegment, _maxDiskNumber, false); }
/// <summary> /// Sort-of like a factory method, ForUpdate is used only when /// the application needs to update the zip entry metadata for /// a segmented zip file, when the starting segment is earlier /// than the ending segment, for a particular entry. /// </summary> /// <remarks> /// <para> /// The update is always contiguous, never rolls over. As a /// result, this method doesn't need to return a ZSS; it can /// simply return a FileStream. That's why it's "sort of" /// like a Factory method. /// </para> /// <para> /// Caller must Close/Dispose the stream object returned by /// this method. /// </para> /// </remarks> public static Stream ForUpdate(ZipSegmentedStreamManager manager, uint diskNumber) { // Console.WriteLine("ZSS: ForUpdate ({0})", // Path.GetFileName(fname)); // This class assumes that the update will not expand the // size of the segment. Update is used only for an in-place // update of zip metadata. It never will try to write beyond // the end of a segment. return manager.OpenSegment(diskNumber, 0, true); }