예제 #1
0
 /// <summary>
 /// Assign properties from TOC.
 /// </summary>
 /// <param name="properties">Property bank in TOC.</param>
 public void AssignTocProperties(CriPack_UTFProperty[] properties, long tocOffset)
 {
     this.DirName     = (string)CriPack_UTF.GetPropertyValue(properties, "DirName");
     this.FileName    = (string)CriPack_UTF.GetPropertyValue(properties, "FileName");
     this.FileSize    = (uint)CriPack_UTF.GetPropertyValue(properties, "FileSize");
     this.ExtractSize = (uint)CriPack_UTF.GetPropertyValue(properties, "ExtractSize");
     this.FileOffset  = tocOffset + (long)(ulong)CriPack_UTF.GetPropertyValue(properties, "FileOffset");
     this.FileId      = (uint)CriPack_UTF.GetPropertyValue(properties, "ID");
     this.UserString  = (string)CriPack_UTF.GetPropertyValue(properties, "UserString");
     this.CRC         = (uint)CriPack_UTF.GetPropertyValue(properties, "CRC");
 }
예제 #2
0
        /// <summary>
        /// Assign properties from E-TOC.
        /// </summary>
        /// <param name="properties">Property bank in E-TOC.</param>
        public void AssignEtocProperties(CriPack_UTFProperty[] properties)
        {
            this.localDir = (string)CriPack_UTF.GetPropertyValue(properties, "LocalDir");
            ulong timestamp = (ulong)CriPack_UTF.GetPropertyValue(properties, "UpdateDateTime");
            // Convert time
            int timeYear   = (int)((timestamp >> 48) & 0xffff);
            int timeMonth  = (int)((timestamp >> 40) & 0xff);
            int timeDay    = (int)((timestamp >> 32) & 0xff);
            int timeHour   = (int)((timestamp >> 24) & 0xff);
            int timeMinute = (int)((timestamp >> 16) & 0xff);
            int timeSecond = (int)((timestamp >> 8) & 0xff);

            this.fileDate = new DateTime(timeYear, timeMonth, timeDay, timeHour, timeMinute, timeSecond);
        }
예제 #3
0
 public object GetPropertyValue(int index, string name)
 {
     return(CriPack_UTF.GetPropertyValue(this.properties[index], name));
 }