Пример #1
0
        /// <summary>
        /// Set the data from the raw values provided.
        /// </summary>
        /// <param name="data">The raw data to extract values from.</param>
        /// <param name="index">The index to start extracting values from.</param>
        /// <param name="count">The number of bytes available.</param>
        public void SetData(byte[] data, int index, int count)
        {
            using (MemoryStream ms = new MemoryStream(data, index, count, false))
                using (ZipHelperStream helperStream = new ZipHelperStream(ms))
                {
                    // bit 0           if set, modification time is present
                    // bit 1           if set, access time is present
                    // bit 2           if set, creation time is present

                    flags_ = (Flags)helperStream.ReadByte();
                    if (((flags_ & Flags.ModificationTime) != 0) && (count >= 5))
                    {
                        int iTime = helperStream.ReadLEInt();

                        modificationTime_ = (new System.DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() +
                                             new TimeSpan(0, 0, 0, iTime, 0)).ToLocalTime();
                    }

                    if ((flags_ & Flags.AccessTime) != 0)
                    {
                        int iTime = helperStream.ReadLEInt();

                        lastAccessTime_ = (new System.DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() +
                                           new TimeSpan(0, 0, 0, iTime, 0)).ToLocalTime();
                    }

                    if ((flags_ & Flags.CreateTime) != 0)
                    {
                        int iTime = helperStream.ReadLEInt();

                        createTime_ = (new System.DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() +
                                       new TimeSpan(0, 0, 0, iTime, 0)).ToLocalTime();
                    }
                }
        }
Пример #2
0
        /// <summary>
        /// Set the data from the raw values provided.
        /// </summary>
        /// <param name="data">The raw data to extract values from.</param>
        /// <param name="index">The index to start extracting values from.</param>
        /// <param name="count">The number of bytes available.</param>
        public void SetData(byte[] data, int index, int count)
        {
            using (MemoryStream ms = new MemoryStream(data, index, count, false))
            using (ZipHelperStream helperStream = new ZipHelperStream(ms))
            {
                // bit 0           if set, modification time is present
                // bit 1           if set, access time is present
                // bit 2           if set, creation time is present

                flags_ = (Flags)helperStream.ReadByte();
                if (((flags_ & Flags.ModificationTime) != 0) && (count >= 5))
                {
                    int iTime = helperStream.ReadLEInt();

                    modificationTime_ = (new System.DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() +
                        new TimeSpan(0, 0, 0, iTime, 0)).ToLocalTime();
                }

                if ((flags_ & Flags.AccessTime) != 0)
                {
                    int iTime = helperStream.ReadLEInt();

                    lastAccessTime_ = (new System.DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() +
                        new TimeSpan(0, 0, 0, iTime, 0)).ToLocalTime();
                }

                if ((flags_ & Flags.CreateTime) != 0)
                {
                    int iTime = helperStream.ReadLEInt();

                    createTime_ = (new System.DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime() +
                        new TimeSpan(0, 0, 0, iTime, 0)).ToLocalTime();
                }
            }
        }