Как данные связывают журналы событий с именем для удобства чтения
я создал систему мониторинга файлов, чтобы отслеживать конкретные файлы, которые приходят в качестве имени FTP001, FTP002, FTP001 был изменен.
есть ли способ привязать имена файлов к экземпляру типа Veronic, Stacy, Stacy file были изменены?
public partial class frmNotifier : Form { private StringBuilder m_Sb; private bool m_bDirty; private System.IO.FileSystemWatcher m_Watcher; private bool m_bIsWatching; public frmNotifier() { InitializeComponent(); m_Sb = new StringBuilder(); m_bDirty = false; m_bIsWatching = false; } private void btnWatchFile_Click(object sender, EventArgs e) { if (m_bIsWatching) { m_bIsWatching = false; m_Watcher.EnableRaisingEvents = false; m_Watcher.Dispose(); btnWatchFile.BackColor = Color.LightSkyBlue; btnWatchFile.Text = "Start Watching"; } else { m_bIsWatching = true; btnWatchFile.BackColor = Color.Red; btnWatchFile.Text = "Stop Watching"; m_Watcher = new System.IO.FileSystemWatcher(); if (rdbDir.Checked) { m_Watcher.Filter = "*.*"; m_Watcher.Path = txtFile.Text + "\\"; } else { m_Watcher.Filter = txtFile.Text.Substring(txtFile.Text.LastIndexOf('\\') + 1); m_Watcher.Path = txtFile.Text.Substring(0, txtFile.Text.Length - m_Watcher.Filter.Length); } if (chkSubFolder.Checked) { m_Watcher.IncludeSubdirectories = true; } m_Watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; m_Watcher.Changed += new FileSystemEventHandler(OnChanged); m_Watcher.Created += new FileSystemEventHandler(OnChanged); m_Watcher.Deleted += new FileSystemEventHandler(OnChanged); m_Watcher.Renamed += new RenamedEventHandler(OnRenamed); m_Watcher.EnableRaisingEvents = true; } } private void OnChanged(object sender, FileSystemEventArgs e) { if (!m_bDirty) { m_Sb.Remove(0, m_Sb.Length); m_Sb.Append(e.FullPath); m_Sb.Append(" "); m_Sb.Append(e.ChangeType.ToString()); m_Sb.Append(" "); m_Sb.Append(DateTime.Now.ToString()); m_bDirty = true; } } private void OnRenamed(object sender, RenamedEventArgs e) { if (!m_bDirty) { m_Sb.Remove(0, m_Sb.Length); m_Sb.Append(e.OldFullPath); m_Sb.Append(" "); m_Sb.Append(e.ChangeType.ToString()); m_Sb.Append(" "); m_Sb.Append("to "); m_Sb.Append(e.Name); m_Sb.Append(" "); m_Sb.Append(DateTime.Now.ToString()); m_bDirty = true; if (rdbFile.Checked) { m_Watcher.Filter = e.Name; m_Watcher.Path = e.FullPath.Substring(0, e.FullPath.Length - m_Watcher.Filter.Length); } } } private void tmrEditNotify_Tick(object sender, EventArgs e) { if (m_bDirty) { lstNotification.BeginUpdate(); lstNotification.Items.Add(m_Sb.ToString()); lstNotification.EndUpdate(); m_bDirty = false; } } private void btnBrowseFile_Click(object sender, EventArgs e) { if (rdbDir.Checked) { DialogResult resDialog = dlgOpenDir.ShowDialog(); if (resDialog.ToString() == "OK") { txtFile.Text = dlgOpenDir.SelectedPath; } } else { DialogResult resDialog = dlgOpenFile.ShowDialog(); if (resDialog.ToString() == "OK") { txtFile.Text = dlgOpenFile.FileName; } } } private void btnLog_Click(object sender, EventArgs e) { DialogResult resDialog = dlgSaveFile.ShowDialog(); if (resDialog.ToString() == "OK") { FileInfo fi = new FileInfo(dlgSaveFile.FileName); StreamWriter sw = fi.CreateText(); foreach (string sItem in lstNotification.Items) { sw.WriteLine(sItem); } sw.Close(); } } private void rdbFile_CheckedChanged(object sender, EventArgs e) { if (rdbFile.Checked == true) { chkSubFolder.Enabled = false; chkSubFolder.Checked = false; } } private void rdbDir_CheckedChanged(object sender, EventArgs e) { if (rdbDir.Checked == true) { chkSubFolder.Enabled = true; } } } }
Что я уже пробовал:
я пытаюсь создать для serperate представления, одно из которых имеет фактическое имя файла, а другое-привязанное к базе данных имя