internal StandardInformation(byte[] AttrBytes, string AttrName)
        {
            ATTR_STANDARD_INFORMATION stdInfo = new ATTR_STANDARD_INFORMATION(AttrBytes, AttrBytes.Length);

            Name         = Enum.GetName(typeof(ATTR_TYPE), stdInfo.header.commonHeader.ATTRType);
            NameString   = AttrName;
            NonResident  = stdInfo.header.commonHeader.NonResident;
            AttributeId  = stdInfo.header.commonHeader.Id;
            Permission   = ((ATTR_STDINFO_PERMISSION)stdInfo.Permission).ToString();
            OwnerId      = stdInfo.OwnerId;
            SecurityId   = stdInfo.SecurityId;
            ModifiedTime = stdInfo.AlterTime;
            AccessedTime = stdInfo.ReadTime;
            ChangedTime  = stdInfo.MFTTime;
            BornTime     = stdInfo.CreateTime;
        }
Beispiel #2
0
        internal StandardInformation(byte[] AttrBytes, string AttrName)
        {
            ATTR_STANDARD_INFORMATION stdInfo = new ATTR_STANDARD_INFORMATION(AttrBytes, AttrBytes.Length);

            #region stdInfoFlags

            StringBuilder permissionFlags = new StringBuilder();
            if (stdInfo.Permission != 0)
            {
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.READONLY) == (uint)ATTR_STDINFO_PERMISSION.READONLY)
                {
                    permissionFlags.Append("READONLY, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.HIDDEN) == (uint)ATTR_STDINFO_PERMISSION.HIDDEN)
                {
                    permissionFlags.Append("HIDDEN, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.SYSTEM) == (uint)ATTR_STDINFO_PERMISSION.SYSTEM)
                {
                    permissionFlags.Append("SYSTEM, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.ARCHIVE) == (uint)ATTR_STDINFO_PERMISSION.ARCHIVE)
                {
                    permissionFlags.Append("ARCHIVE, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.DEVICE) == (uint)ATTR_STDINFO_PERMISSION.DEVICE)
                {
                    permissionFlags.Append("DEVICE, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.NORMAL) == (uint)ATTR_STDINFO_PERMISSION.NORMAL)
                {
                    permissionFlags.Append("NORMAL, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.TEMP) == (uint)ATTR_STDINFO_PERMISSION.TEMP)
                {
                    permissionFlags.Append("TEMP, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.SPARSE) == (uint)ATTR_STDINFO_PERMISSION.SPARSE)
                {
                    permissionFlags.Append("SPARSE, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.REPARSE) == (uint)ATTR_STDINFO_PERMISSION.REPARSE)
                {
                    permissionFlags.Append("REPARSE, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.COMPRESSED) == (uint)ATTR_STDINFO_PERMISSION.COMPRESSED)
                {
                    permissionFlags.Append("COMPRESSED, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.OFFLINE) == (uint)ATTR_STDINFO_PERMISSION.OFFLINE)
                {
                    permissionFlags.Append("OFFLINE, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.NCI) == (uint)ATTR_STDINFO_PERMISSION.NCI)
                {
                    permissionFlags.Append("NCI, ");
                }
                if ((stdInfo.Permission & (uint)ATTR_STDINFO_PERMISSION.ENCRYPTED) == (uint)ATTR_STDINFO_PERMISSION.ENCRYPTED)
                {
                    permissionFlags.Append("ENCRYPTED, ");
                }
                if (permissionFlags.Length > 2)
                {
                    permissionFlags.Length -= 2;
                }
            }

            #endregion stdInfoFlags

            Name         = Enum.GetName(typeof(ATTR_TYPE), stdInfo.header.commonHeader.ATTRType);
            NameString   = AttrName;
            NonResident  = stdInfo.header.commonHeader.NonResident;
            AttributeId  = stdInfo.header.commonHeader.Id;
            Permission   = permissionFlags.ToString();
            OwnerId      = stdInfo.OwnerId;
            SecurityId   = stdInfo.SecurityId;
            ModifiedTime = stdInfo.AlterTime;
            AccessedTime = stdInfo.ReadTime;
            ChangedTime  = stdInfo.MFTTime;
            BornTime     = stdInfo.CreateTime;
        }