Note that there are some explanatory texts on larger screens.

plurals
  1. POFilesystemwatcher double entries
    text
    copied!<p>I made a small winforms application to monitor a certain folder for new pdf files, if a new pdf file is created in the particulair folder it will copy it to an other location.</p> <p>The problem i'm having is that the filesystemwatcher creates double/multiple entries in my listbox, how can i solve this?</p> <pre><code>namespace Scanmonitor { public partial class Form1 : Form { FileSystemWatcher watcher = new FileSystemWatcher(); DateTime lastRead = DateTime.MinValue; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { FileWatch(); } public void FileWatch() { watcher.Path = @"C:\Scanner"; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.LastWrite; watcher.Filter = "*.pdf"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; } public void OnChanged(object source, FileSystemEventArgs e) { scannerListBox.Items.Add(e.FullPath); scannerListBox.SelectedIndex = scannerListBox.Items.Count - 1; FileMove(scannerListBox.SelectedItem.ToString()); } public void FileMove(string filePath) { try { System.IO.File.Copy(filePath, @"\\share\Data\Scans op OCE 600\" + Path.GetFileName(filePath)); } catch (Exception ex) { ToolLabel.Text = ex.Message.ToString(); } } } } </code></pre> <p>}</p> <p>Got it working.</p> <pre><code>public void OnChanged(object source, FileSystemEventArgs e) { try { watcher.EnableRaisingEvents = false; FileInfo objFileInfo = new FileInfo(e.FullPath); if (!objFileInfo.Exists) return; System.Threading.Thread.Sleep(5000); FileInfo fileinformatie = new FileInfo(e.FullPath); string strCreateTime = fileinformatie.CreationTime.ToString(); string strCreateDate = fileinformatie.CreationTime.ToString(); strCreateTime = strCreateTime.Remove(strCreateTime.LastIndexOf(" ")); strCreateDate = strCreateDate.Remove(0,strCreateDate.LastIndexOf(" ")); ProcessAllFiles(e.FullPath, strCreateTime, strCreateDate); } catch (Exception ex) { ToolLabel.Text = ex.Message.ToString(); } finally { watcher.EnableRaisingEvents = true; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload