private void FillListBoxWithUsnEntries(NtfsUsnJournal.UsnJournalReturnCode rtnCode, List <Win32Api.UsnEntry> usnEntries, Win32Api.USN_JOURNAL_DATA_V0 newUsnState) { FunctionElapsedTime.Content = string.Format(CultureInfo.InvariantCulture, "'View Changes'->{0} duration: {1} (ms)", "GetUsnJournalEntries", NtfsUsnJournal.ElapsedTime.TotalMilliseconds); if (rtnCode == NtfsUsnJournal.UsnJournalReturnCode.USN_JOURNAL_SUCCESS) { if (usnEntries.Count > 0) { _entryDetail = UsnEntryDetail.EntryDetail.UsnEntry; resultsLb.ItemsSource = usnEntries; var updateUsnStateDlg = new UpdateUsnStateDialog(this) { Owner = this }; var bRtn = updateUsnStateDlg.ShowDialog(); if (bRtn != null && bRtn.Value) { _usnCurrentJournalState = newUsnState; } } else { var lbItem = new ListBoxItem { Content = "\'View Changes\'-> No Journal entries found", Foreground = Brushes.Red }; resultsLb.Items.Add(lbItem); } } else { var lbItem = new ListBoxItem { Content = string.Format(CultureInfo.InvariantCulture, "'View Changes'->{0} returned error code: {1}", "GetUsnJournalEntries", rtnCode), Foreground = Brushes.Red }; resultsLb.Items.Add(lbItem); } Cursor = Cursors.Arrow; }
private void FillListBoxWithFolders(NtfsUsnJournal.UsnJournalReturnCode rtnCode, List <Win32Api.UsnEntry> folders) { FunctionElapsedTime.Content = string.Format("'List Folders'->{0} elapsed time {1}(ms) {2} folders", "GetNtfsVolumeFolders()", NtfsUsnJournal.ElapsedTime.Milliseconds.ToString(), folders.Count); if (rtnCode == NtfsUsnJournal.UsnJournalReturnCode.USN_JOURNAL_SUCCESS) { if (folders.Count > 0) { _entryDetail = UsnEntryDetail.EntryDetail.File; resultsLb.ItemsSource = folders; } } else { ListBoxItem lbItem = new ListBoxItem(); lbItem.Content = string.Format("'List Folders'->{0} returned error code: {1}", "GetNtfsVolumeFolders()", rtnCode.ToString()); lbItem.Foreground = Brushes.Red; resultsLb.Items.Add(lbItem); } Cursor = Cursors.Arrow; }
private void FillListBoxWithUsnEntries(NtfsUsnJournal.UsnJournalReturnCode rtnCode, List <Win32Api.UsnEntry> usnEntries, Win32Api.USN_JOURNAL_DATA newUsnState) { FunctionElapsedTime.Content = string.Format("'View Changes'->{0} elapsed time {1}(ms)", "GetUsnJournalEntries()", NtfsUsnJournal.ElapsedTime.Milliseconds.ToString()); if (rtnCode == NtfsUsnJournal.UsnJournalReturnCode.USN_JOURNAL_SUCCESS) { if (usnEntries.Count > 0) { _entryDetail = UsnEntryDetail.EntryDetail.UsnEntry; resultsLb.ItemsSource = usnEntries; UpdateUsnStateDialog updateUsnStateDlg = new UpdateUsnStateDialog(this); updateUsnStateDlg.Owner = this; bool?bRtn = updateUsnStateDlg.ShowDialog(); if (bRtn != null && bRtn.Value) { _usnCurrentJournalState = newUsnState; } } else { ListBoxItem lbItem = new ListBoxItem(); lbItem.Content = string.Format("'View Changes'-> No Journal entries found"); lbItem.Foreground = Brushes.Red; resultsLb.Items.Add(lbItem); } } else { ListBoxItem lbItem = new ListBoxItem(); lbItem.Content = string.Format("'View Changes'->{0} returned error code: {1}", "GetUsnJournalEntries()", rtnCode.ToString()); lbItem.Foreground = Brushes.Red; resultsLb.Items.Add(lbItem); } Cursor = Cursors.Arrow; }
public void ChangeDisplay(double top, double left, Win32Api.UsnEntry usnEntry, UsnEntryDetail.EntryDetail entryDetail) { Top = top; Left = left; MainWindow mainWin = (MainWindow)Application.Current.MainWindow; NtfsUsnJournal usnJournal = mainWin.Journal; StringBuilder sb = new StringBuilder(); if (usnEntry.IsFolder) { sb.AppendFormat("Directory: {0}", usnEntry.Name); } else if (usnEntry.IsFile) { sb.AppendFormat("File: {0}", usnEntry.Name); } _nameLbl.Content = sb.ToString(); sb = new StringBuilder(); string path; NtfsUsnJournal.UsnJournalReturnCode usnRtnCode = usnJournal.GetPathFromFileReference(usnEntry.ParentFileReferenceNumber, out path); if (usnRtnCode == NtfsUsnJournal.UsnJournalReturnCode.USN_JOURNAL_SUCCESS && 0 != string.Compare(path, "Unavailable", true)) { sb.AppendFormat(" Path: {0}{1}\\", usnJournal.VolumeName.TrimEnd('\\'), path); } else { sb.AppendFormat(" Path: {0}", path); } _pathLbl.Content = sb.ToString(); sb = new StringBuilder(); sb.AppendFormat(" File Ref No: {0}", usnEntry.FileReferenceNumber); sb.AppendFormat("\n Parent FRN {0}", usnEntry.ParentFileReferenceNumber); if (entryDetail == EntryDetail.UsnEntry) { sb.AppendFormat("\n Length: {0}", usnEntry.RecordLength); sb.AppendFormat("\n USN: {0}", usnEntry.USN); AddReasonData(sb, usnEntry); } if (usnEntry.IsFile) { string fullPath = System.IO.Path.Combine(path, usnEntry.Name); if (File.Exists(fullPath)) { FileInfo fi = new FileInfo(fullPath); sb.AppendFormat("\n File Length: {0} (bytes)", fi.Length); sb.AppendFormat("\n Creation Time: {0} - {1}", fi.CreationTime.ToShortDateString(), fi.CreationTime.ToShortTimeString()); sb.AppendFormat("\n Last Modify: {0} - {1}", fi.LastWriteTime.ToShortDateString(), fi.LastWriteTime.ToShortTimeString()); sb.AppendFormat("\n Last Access: {0} - {1}", fi.LastAccessTime.ToShortDateString(), fi.LastAccessTime.ToShortTimeString()); } } _entryDetailLbl.Content = sb.ToString(); Visibility = Visibility.Visible; }