コード例 #1
0
        private void ProcessFileDelete(PInvokeWin32.USN_RECORD usn, string volume, MFTSearcherCache db)
        {
            var cached = db.FindByFrn(volume, usn.FRN);

            if (cached != null)
            {
                MFTSearcher.FillPath(volume, cached, db);
                var deleteok = db.DeleteRecord(volume, usn.FRN);
                Debug.WriteLine(string.Format(">>>> DeleteFIle {0} {1}.", cached.FullPath, deleteok ? "successful" : "fail"));
                if (RecordDeletedEvent != null)
                {
                    RecordDeletedEvent(cached);
                }
            }
        }
コード例 #2
0
        private void ProcessRenameNewName(PInvokeWin32.USN_RECORD usn, string volume, MFTSearcherCache db)
        {
            USNRecord newRecord = USNRecord.ParseUSN(volume, usn);

            db.UpdateRecord(volume, newRecord);

            var oldRecord = db.FindByFrn(volume, usn.FRN);

            if (oldRecord != null)
            {
                Debug.WriteLine(string.Format(">>>> RenameFile {0} to {1}", oldRecord.FullPath, newRecord.FullPath));
                if (RecordRenameEvent != null)
                {
                    RecordRenameEvent(oldRecord, newRecord);
                }
            }
        }