using System; using Y.FileQueryEngine.Win32.Constants; using Y.FileQueryEngine.Win32.Structures; namespace Y.FileQueryEngine.UsnOperation { /// /// TODO: Update summary. /// public class UsnEntry { public uint RecordLength { get; private set; } public ulong FileReferenceNumber { get; private set; } /// /// Gets the parent file reference number. /// When its values is 1407374883553285(0x5000000000005L), it means this file/folder is under drive root /// /// /// The parent file reference number. /// public ulong ParentFileReferenceNumber { get; private set; } public long Usn { get; private set; } public uint Reason { get; private set; } public uint FileAttributes { get; private set; } public int FileNameLength { get; private set; } public int FileNameOffset { get; private set; } public string FileName { get; private set; } public bool IsFolder { get { return (this.FileAttributes & Win32ApiConstant.FILE_ATTRIBUTE_DIRECTORY) != 0; } } public UsnEntry(USN_RECORD_V2 usnRecord) { this.RecordLength = usnRecord.RecordLength; this.FileReferenceNumber = usnRecord.FileReferenceNumber; this.ParentFileReferenceNumber = usnRecord.ParentFileReferenceNumber; this.Usn = usnRecord.Usn; this.Reason = usnRecord.Reason; this.FileAttributes = usnRecord.FileAttributes; this.FileNameLength = usnRecord.FileNameLength; this.FileNameOffset = usnRecord.FileNameOffset; this.FileName = usnRecord.FileName; } } }