ZipFileInfo.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / IO / Zip / ZipFileInfo.cs / 1305600 / ZipFileInfo.cs

                            //------------------------------------------------------------------------------ 
//-------------   *** WARNING ***
//-------------    This file is part of a legally monitored development project.
//-------------    Do not check in changes to this project.  Do not raid bugs on this
//-------------    code in the main PS database.  Do not contact the owner of this 
//-------------    code directly.  Contact the legal team at �ZSLegal� for assistance.
//-------------   *** WARNING *** 
//----------------------------------------------------------------------------- 

//----------------------------------------------------------------------------- 
//
// 
//    Copyright (C) Microsoft Corporation.  All rights reserved.
//  
//
// Description: 
//  This is an internal class that enables interactions with Zip archives 
//  for OPC scenarios
// 
// History:
//  11/19/2004: IgorBel: Initial creation.
//
//----------------------------------------------------------------------------- 

using System; 
using System.IO; 
using System.Diagnostics;
 
namespace MS.Internal.IO.Zip
{
    internal sealed class ZipFileInfo
    { 
        //------------------------------------------------------
        // 
        //  Public Members 
        //
        //----------------------------------------------------- 
        // None

        //------------------------------------------------------
        // 
        //  Internal Constructors
        // 
        //------------------------------------------------------ 
        // None
 
        //-----------------------------------------------------
        //
        // Internal API Methods (although these methods are marked as
        // Internal they are part of the internal ZIP IO API surface 
        //
        //------------------------------------------------------ 
        internal Stream GetStream(FileMode mode, FileAccess access) 
        {
            CheckDisposed(); 
            return _fileBlock.GetStream(mode, access);
        }

        //----------------------------------------------------- 
        //
        //  Internal Properties 
        // 
        //-----------------------------------------------------
        internal string Name 
        {
            get
            {
                CheckDisposed(); 
                return _fileBlock.FileName;
            } 
        } 

        internal ZipArchive ZipArchive 
        {
            get
            {
                CheckDisposed(); 
                return _zipArchive;
            } 
        } 

        internal CompressionMethodEnum CompressionMethod 
        {
            get
            {
                CheckDisposed(); 
                return _fileBlock.CompressionMethod;
            } 
        } 

        internal DateTime LastModFileDateTime 
        {
            get
            {
                CheckDisposed(); 
                return ZipIOBlockManager.FromMsDosDateTime(_fileBlock.LastModFileDateTime);
            } 
        } 

#if false 
        internal bool EncryptedFlag
        {
            get
            { 
                CheckDisposed();
                return _fileBlock.EncryptedFlag; 
            } 
        }
#endif 

        internal DeflateOptionEnum DeflateOption
        {
            get 
            {
                CheckDisposed(); 
                return _fileBlock.DeflateOption; 
            }
        } 
#if false
        internal bool StreamingCreationFlag
        {
            get 
            {
                CheckDisposed(); 
                return _fileBlock.StreamingCreationFlag; 
            }
        } 
#endif
        // This ia Directory flag based on the informtion from the central directory
        // at the moment we have only provide reliable value for the files authored in MS-DOS
        // The upper byte of version made by indicating (OS) must be == 0 (MS-DOS) 
        // for the other cases (OSes) we will return false
        internal bool FolderFlag 
        { 
            get
            { 
                CheckDisposed();
                return _fileBlock.FolderFlag;
            }
        } 

        // This ia Directory flag based on the informtion from the central directory 
        // at the moment we have only provide reliable value for the files authored in MS-DOS 
        // The upper byte of version made by indicating (OS) must be == 0 (MS-DOS)
        // for the other cases (OSes) we will return false 
        internal bool VolumeLabelFlag
        {
            get
            { 
                CheckDisposed();
                return _fileBlock.VolumeLabelFlag; 
            } 
        }
 
        //-----------------------------------------------------
        // Internal NON API Constructor (this constructor is marked as internal
        // and isNOT part of the ZIP IO API surface)
        //  It supposed to be called only by the ZipArchive class 
        //------------------------------------------------------
        internal ZipFileInfo(ZipArchive zipArchive, ZipIOLocalFileBlock fileBlock) 
        { 
            Debug.Assert((fileBlock != null) && (zipArchive != null));
            _fileBlock = fileBlock; 
            _zipArchive = zipArchive;
#if DEBUG
            // validate that date time is legal
            DateTime dt = LastModFileDateTime; 
#endif
        } 
 
        //-----------------------------------------------------
        // Internal NON API property to be used to map FileInfo back to a block that needs to be deleted 
        // (this prperty is marked as internal and isNOT part of the ZIP IO API surface)
        //  It supposed to be called only by the ZipArchive class
        //------------------------------------------------------
        internal ZipIOLocalFileBlock LocalFileBlock 
        {
            get 
            { 
                return _fileBlock;
            } 
        }
        //------------------------------------------------------
        //
        //  Private Methods 
        //
        //----------------------------------------------------- 
        private void CheckDisposed() 
        {
            _fileBlock.CheckDisposed(); 
        }

        //------------------------------------------------------
        // 
        //  Private Properties
        // 
        //----------------------------------------------------- 

        //----------------------------------------------------- 
        //
        //  Private Fields
        //
        //----------------------------------------------------- 
        private ZipIOLocalFileBlock _fileBlock;
        private ZipArchive _zipArchive; 
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK