Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Base / System / IO / Packaging / ZipPackagePart.cs / 1 / ZipPackagePart.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a subclass for the abstract PackagePart class. // This implementation is specific to Zip file format. // // History: // 12/28/2004: SarjanaS: Initial creation. [BruceMac provided some of the // initial code] // //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using MS.Internal.IO.Zip; using MS.Internal.IO.Packaging; using MS.Internal; // for Invariant namespace System.IO.Packaging { ////// This class represents a Part within a Zip container. /// This is a part of the Packaging Layer APIs /// public sealed class ZipPackagePart : PackagePart { //----------------------------------------------------- // // Public Constructors // //----------------------------------------------------- // None //------------------------------------------------------ // // Public Properties // //----------------------------------------------------- // None //------------------------------------------------------ // // Public Methods // //------------------------------------------------------ #region Public Methods ////// Custom Implementation for the GetStream Method /// /// Mode in which the stream should be opened /// Access with which the stream should be opened ///Stream Corresponding to this part protected override Stream GetStreamCore(FileMode mode, FileAccess access) { if (Package.InStreamingCreation) { // Convert Metro CompressionOption to Zip CompressionMethodEnum. CompressionMethodEnum compressionMethod; DeflateOptionEnum deflateOption; ZipPackage.GetZipCompressionMethodFromOpcCompressionOption(this.CompressionOption, out compressionMethod, out deflateOption); // Mode and access get validated in StreamingZipPartStream(). return new StreamingZipPartStream( PackUriHelper.GetStringForPartUri(this.Uri), _zipArchive, compressionMethod, deflateOption, mode, access); } else if (_zipFileInfo != null) { // Case of an atomic part. return _zipFileInfo.GetStream(mode, access); } else { // Case of an interleaved part. Invariant.Assert(_pieces != null); return new InterleavedZipPartStream(this, mode, access); } } #endregion Public Methods //----------------------------------------------------- // // Public Events // //------------------------------------------------------ // None //----------------------------------------------------- // // Internal Constructors // //----------------------------------------------------- #region Internal Constructors ////// Constructs a ZipPackagePart for an atomic (i.e. non-interleaved) part. /// This is called from the ZipPackage class as a result of GetPartCore, /// GetPartsCore or CreatePartCore methods /// /// /// /// /// /// internal ZipPackagePart(ZipPackage container, ZipFileInfo zipFileInfo, PackUriHelper.ValidatedPartUri partUri, string contentType, CompressionOption compressionOption) :base(container, partUri, contentType, compressionOption) { _zipArchive = zipFileInfo.ZipArchive; _zipFileInfo = zipFileInfo; } ////// Constructs a ZipPackagePart. This is called from ZipPackage.CreatePartCore in streaming /// production. /// No piece is created until the first write operation on the associated stream. Therefore /// this constructor does not take a ZipFileInfo. /// /// /// /// /// /// internal ZipPackagePart(ZipPackage container, ZipArchive zipArchive, PackUriHelper.ValidatedPartUri partUri, string contentType, CompressionOption compressionOption) :base(container, partUri, contentType, compressionOption) { _zipArchive = zipArchive; } ////// Constructs a ZipPackagePart for an interleaved part. This is called outside of streaming /// production when an interleaved part is encountered in the package. /// /// /// /// /// /// /// internal ZipPackagePart(ZipPackage container, ZipArchive zipArchive, Listpieces, PackUriHelper.ValidatedPartUri partUri, string contentType, CompressionOption compressionOption) :base(container, partUri, contentType, compressionOption) { _zipArchive = zipArchive; _pieces = pieces; } #endregion Internal Constructors //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Properties /// /// Obtain the sorted array of piece descriptors for an interleaved part. /// internal ListPieceDescriptors { get { return _pieces; } } /// /// Obtain the ZipFileInfo descriptor of an atomic part. /// internal ZipFileInfo ZipFileInfo { get { return _zipFileInfo; } } #endregion Internal Properties //----------------------------------------------------- // // Internal Methods // //------------------------------------------------------ // None //------------------------------------------------------ // // Internal Events // //----------------------------------------------------- // None //------------------------------------------------------ // // Private Methods // //----------------------------------------------------- // None //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Variables // Zip item info for an atomic part. private ZipFileInfo _zipFileInfo; // Piece descriptors for an interleaved part. private List_pieces; //ZipArhive private ZipArchive _zipArchive; #endregion Private Variables //------------------------------------------------------ } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // // // Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // This is a subclass for the abstract PackagePart class. // This implementation is specific to Zip file format. // // History: // 12/28/2004: SarjanaS: Initial creation. [BruceMac provided some of the // initial code] // //----------------------------------------------------------------------------- using System; using System.Collections.Generic; using MS.Internal.IO.Zip; using MS.Internal.IO.Packaging; using MS.Internal; // for Invariant namespace System.IO.Packaging { ////// This class represents a Part within a Zip container. /// This is a part of the Packaging Layer APIs /// public sealed class ZipPackagePart : PackagePart { //----------------------------------------------------- // // Public Constructors // //----------------------------------------------------- // None //------------------------------------------------------ // // Public Properties // //----------------------------------------------------- // None //------------------------------------------------------ // // Public Methods // //------------------------------------------------------ #region Public Methods ////// Custom Implementation for the GetStream Method /// /// Mode in which the stream should be opened /// Access with which the stream should be opened ///Stream Corresponding to this part protected override Stream GetStreamCore(FileMode mode, FileAccess access) { if (Package.InStreamingCreation) { // Convert Metro CompressionOption to Zip CompressionMethodEnum. CompressionMethodEnum compressionMethod; DeflateOptionEnum deflateOption; ZipPackage.GetZipCompressionMethodFromOpcCompressionOption(this.CompressionOption, out compressionMethod, out deflateOption); // Mode and access get validated in StreamingZipPartStream(). return new StreamingZipPartStream( PackUriHelper.GetStringForPartUri(this.Uri), _zipArchive, compressionMethod, deflateOption, mode, access); } else if (_zipFileInfo != null) { // Case of an atomic part. return _zipFileInfo.GetStream(mode, access); } else { // Case of an interleaved part. Invariant.Assert(_pieces != null); return new InterleavedZipPartStream(this, mode, access); } } #endregion Public Methods //----------------------------------------------------- // // Public Events // //------------------------------------------------------ // None //----------------------------------------------------- // // Internal Constructors // //----------------------------------------------------- #region Internal Constructors ////// Constructs a ZipPackagePart for an atomic (i.e. non-interleaved) part. /// This is called from the ZipPackage class as a result of GetPartCore, /// GetPartsCore or CreatePartCore methods /// /// /// /// /// /// internal ZipPackagePart(ZipPackage container, ZipFileInfo zipFileInfo, PackUriHelper.ValidatedPartUri partUri, string contentType, CompressionOption compressionOption) :base(container, partUri, contentType, compressionOption) { _zipArchive = zipFileInfo.ZipArchive; _zipFileInfo = zipFileInfo; } ////// Constructs a ZipPackagePart. This is called from ZipPackage.CreatePartCore in streaming /// production. /// No piece is created until the first write operation on the associated stream. Therefore /// this constructor does not take a ZipFileInfo. /// /// /// /// /// /// internal ZipPackagePart(ZipPackage container, ZipArchive zipArchive, PackUriHelper.ValidatedPartUri partUri, string contentType, CompressionOption compressionOption) :base(container, partUri, contentType, compressionOption) { _zipArchive = zipArchive; } ////// Constructs a ZipPackagePart for an interleaved part. This is called outside of streaming /// production when an interleaved part is encountered in the package. /// /// /// /// /// /// /// internal ZipPackagePart(ZipPackage container, ZipArchive zipArchive, Listpieces, PackUriHelper.ValidatedPartUri partUri, string contentType, CompressionOption compressionOption) :base(container, partUri, contentType, compressionOption) { _zipArchive = zipArchive; _pieces = pieces; } #endregion Internal Constructors //----------------------------------------------------- // // Internal Properties // //------------------------------------------------------ #region Internal Properties /// /// Obtain the sorted array of piece descriptors for an interleaved part. /// internal ListPieceDescriptors { get { return _pieces; } } /// /// Obtain the ZipFileInfo descriptor of an atomic part. /// internal ZipFileInfo ZipFileInfo { get { return _zipFileInfo; } } #endregion Internal Properties //----------------------------------------------------- // // Internal Methods // //------------------------------------------------------ // None //------------------------------------------------------ // // Internal Events // //----------------------------------------------------- // None //------------------------------------------------------ // // Private Methods // //----------------------------------------------------- // None //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Variables // Zip item info for an atomic part. private ZipFileInfo _zipFileInfo; // Piece descriptors for an interleaved part. private List_pieces; //ZipArhive private ZipArchive _zipArchive; #endregion Private Variables //------------------------------------------------------ } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RequiredFieldValidator.cs
- ToolboxCategoryItems.cs
- DataGridViewRow.cs
- PenContexts.cs
- ImmutablePropertyDescriptorGridEntry.cs
- Transform.cs
- SiteMembershipCondition.cs
- ImageFormatConverter.cs
- ConditionCollection.cs
- ConstantProjectedSlot.cs
- IPEndPoint.cs
- ExpandSegmentCollection.cs
- WebPartCloseVerb.cs
- FileUpload.cs
- regiisutil.cs
- XmlIgnoreAttribute.cs
- EventListenerClientSide.cs
- HostExecutionContextManager.cs
- RootBrowserWindow.cs
- TextFormatterHost.cs
- WMICapabilities.cs
- SafePointer.cs
- SafeArrayTypeMismatchException.cs
- OleDbConnectionInternal.cs
- AddInActivator.cs
- GraphicsState.cs
- DrawingAttributes.cs
- Thread.cs
- DynamicRendererThreadManager.cs
- CngAlgorithm.cs
- BitmapCache.cs
- CFStream.cs
- CodeArrayIndexerExpression.cs
- FormsAuthenticationConfiguration.cs
- LoginView.cs
- DesignerTransaction.cs
- EncryptedPackageFilter.cs
- EraserBehavior.cs
- ItemChangedEventArgs.cs
- Application.cs
- FileLoadException.cs
- InputLangChangeRequestEvent.cs
- InputLanguageSource.cs
- DataGridCommandEventArgs.cs
- CompModSwitches.cs
- FileClassifier.cs
- WizardStepBase.cs
- LeafCellTreeNode.cs
- XmlRawWriter.cs
- QilLiteral.cs
- HttpServerVarsCollection.cs
- WebContentFormatHelper.cs
- XmlTextReaderImplHelpers.cs
- XmlSchemaAnnotation.cs
- PageCatalogPart.cs
- BoundPropertyEntry.cs
- DateTimeHelper.cs
- ResourceDisplayNameAttribute.cs
- ServiceOperationWrapper.cs
- TextTrailingWordEllipsis.cs
- XmlObjectSerializerWriteContextComplex.cs
- FontUnitConverter.cs
- SerialPort.cs
- ModifierKeysValueSerializer.cs
- PopupControlService.cs
- LongAverageAggregationOperator.cs
- MessageSmuggler.cs
- XmlCustomFormatter.cs
- DataGridViewCellStyleConverter.cs
- DbSourceCommand.cs
- XmlCDATASection.cs
- LoadedOrUnloadedOperation.cs
- TimeSpan.cs
- ReadOnlyDataSourceView.cs
- XamlDesignerSerializationManager.cs
- RelOps.cs
- SerializerWriterEventHandlers.cs
- SecurityAlgorithmSuite.cs
- WebPartAddingEventArgs.cs
- CurrencyManager.cs
- CodeDomConfigurationHandler.cs
- KeyValuePair.cs
- ConstructorExpr.cs
- SupportingTokenBindingElement.cs
- NumberSubstitution.cs
- FileDialog.cs
- SoapFault.cs
- DefaultValueMapping.cs
- SafeRightsManagementPubHandle.cs
- webeventbuffer.cs
- ResolveDuplex11AsyncResult.cs
- EventLogInternal.cs
- NativeMethodsCLR.cs
- MaxValueConverter.cs
- ContextDataSourceContextData.cs
- SqlDataSourceCustomCommandEditor.cs
- LessThanOrEqual.cs
- ViewBox.cs
- Stroke.cs
- HtmlInputImage.cs