public IEnumerable<string> GetDeletedFiles()
{
while (true) {
string item;
lock (_DeletedFiles) {
if (_DeletedFiles.Count > 0)
item = _DeletedFiles.Dequeue();
else
yield break;
}
bool excluded = false;
foreach (var exclusion in _Exclusions) {
if (exclusion.IsMatch(item)) {
excluded = true;
break;
}
}
if (excluded)
continue;
yield return item;
}
}
public void DeletedEvents() { string fileName = TempFolder + @"\test.txt"; System.IO.File.WriteAllText(fileName, "test"); Monitor.Monitoring = true; for (int i = 0; i < 100; i++) { Thread.Sleep(10); } Assert.IsFalse(Monitor.GetChangedFiles().Distinct().ToArray().Contains(fileName)); Assert.IsFalse(Monitor.GetDeletedFiles().Distinct().ToArray().Contains(fileName)); System.IO.File.Delete(fileName); while (Monitor.NumDeletedFiles < 1) { Thread.Sleep(1); } string[] files = Monitor.GetDeletedFiles().Distinct().ToArray(); Assert.Contains(fileName, files); }