GetDateTimeFromCTime() static private method

static private GetDateTimeFromCTime ( long ticks ) : System.DateTime
ticks long
return System.DateTime
Example #1
0
        public void ParseBuffer(byte[] header)
        {
            if (header == null)
            {
                throw new ArgumentNullException("header");
            }
            int num = 0;

            this.name     = TarHeader.ParseName(header, num, 100).ToString();
            num          += 100;
            this.mode     = (int)TarHeader.ParseOctal(header, num, 8);
            num          += 8;
            this.UserId   = (int)TarHeader.ParseOctal(header, num, 8);
            num          += 8;
            this.GroupId  = (int)TarHeader.ParseOctal(header, num, 8);
            num          += 8;
            this.Size     = TarHeader.ParseBinaryOrOctal(header, num, 12);
            num          += 12;
            this.ModTime  = TarHeader.GetDateTimeFromCTime(TarHeader.ParseOctal(header, num, 12));
            num          += 12;
            this.checksum = (int)TarHeader.ParseOctal(header, num, 8);
            num          += 8;
            this.TypeFlag = header[num++];
            this.LinkName = TarHeader.ParseName(header, num, 100).ToString();
            num          += 100;
            this.Magic    = TarHeader.ParseName(header, num, 6).ToString();
            num          += 6;
            if (this.Magic == "ustar")
            {
                this.Version   = TarHeader.ParseName(header, num, 2).ToString();
                num           += 2;
                this.UserName  = TarHeader.ParseName(header, num, 32).ToString();
                num           += 32;
                this.GroupName = TarHeader.ParseName(header, num, 32).ToString();
                num           += 32;
                this.DevMajor  = (int)TarHeader.ParseOctal(header, num, 8);
                num           += 8;
                this.DevMinor  = (int)TarHeader.ParseOctal(header, num, 8);
                num           += 8;
                string text = TarHeader.ParseName(header, num, 155).ToString();
                if (!string.IsNullOrEmpty(text))
                {
                    this.Name = text + '/' + this.Name;
                }
            }
            this.isChecksumValid = (this.Checksum == TarHeader.MakeCheckSum(header));
        }