internal void RemoveAttributeExtent(AttributeReference extentRef) { FileRecord fileRec = GetFileRecord(extentRef.File); if (fileRec != null) { fileRec.RemoveAttribute(extentRef.AttributeId); // Remove empty non-primary MFT records if (fileRec.Attributes.Count == 0 && fileRec.BaseFile.Value != 0) { RemoveFileRecord(extentRef.File); } } }
private void MoveAttribute(FileRecord record, AttributeRecord attrRec, FileRecord targetRecord) { AttributeReference oldRef = new AttributeReference(record.Reference, attrRec.AttributeId); record.RemoveAttribute(attrRec.AttributeId); targetRecord.AddAttribute(attrRec); AttributeReference newRef = new AttributeReference(targetRecord.Reference, attrRec.AttributeId); foreach (var attr in _attributes) { attr.ReplaceExtent(oldRef, newRef, attrRec); } UpdateAttributeList(); }