MyEverything.MyEverythingRecord.ParseUSN C# (CSharp) Method

ParseUSN() public static method

public static ParseUSN ( string volume, MyEverything.PInvokeWin32 usn ) : MyEverythingRecord
volume string
usn MyEverything.PInvokeWin32
return MyEverythingRecord
        public static MyEverythingRecord ParseUSN(string volume, PInvokeWin32.USN_RECORD usn)
        {
            return new MyEverythingRecord { FRN = usn.FRN, Name = usn.FileName,
                ParentFrn = usn.ParentFRN, IsFolder = usn.IsFolder, VolumeName = volume };
        }

Usage Example

Esempio n. 1
0
        private void ProcessRenameNewName(PInvokeWin32.USN_RECORD usn, string volume, MyEverythingDB db)
        {
            // frn 没有改变
            // newname = usn.FileName
            // 根据usn.FRN可以从db中获取oldname
            // db.update...
            MyEverythingRecord newRecord = MyEverythingRecord.ParseUSN(usn);
            string             fullpath  = newRecord.Name;

            db.FindRecordPath(newRecord, ref fullpath, db.GetFolderSource(volume));
            newRecord.FullPath = fullpath;
            var    oldRecord = db.FindByFrn(volume, usn.FRN);
            string newname   = newRecord.FullPath;

            Debug.WriteLine(string.Format(">>>> RenameFile {0} to {1}", oldRecord.FullPath, newname));
            db.UpdateRecord(volume, newRecord,
                            usn.IsFolder ? MyEverythingRecordType.Folder : MyEverythingRecordType.File);
            if (RecordRenameEvent != null)
            {
                RecordRenameEvent(oldRecord, newRecord);
            }
            if (newname.Contains("$RECYCLE.BIN"))
            {
                Debug.WriteLine(string.Format(">>>> Means {0} moved to recycle.", oldRecord.FullPath));
            }
        }
All Usage Examples Of MyEverything.MyEverythingRecord::ParseUSN
MyEverythingRecord