Squared.Task.IO.DiskMonitor.GetChangedFiles C# (CSharp) Method

GetChangedFiles() public method

public GetChangedFiles ( ) : IEnumerable
return IEnumerable
        public IEnumerable<string> GetChangedFiles()
        {
            while (true) {
                string item;
                lock (_ChangedFiles) {
                    if (_ChangedFiles.Count > 0)
                        item = _ChangedFiles.Dequeue();
                    else
                        yield break;
                }

                bool excluded = false;
                foreach (var exclusion in _Exclusions) {
                    if (exclusion.IsMatch(item)) {
                        excluded = true;
                        break;
                    }
                }

                if (excluded)
                    continue;

                bool filtered = (_Filters.Length > 0);
                foreach (var filter in _Filters) {
                    if (filter.IsMatch(item)) {
                        filtered = false;
                        break;
                    }
                }

                if (!filtered)
                    yield return item;
            }
        }

Usage Example

Beispiel #1
0
        public void CreateEvents()
        {
            string fileName = TempFolder + @"\test.txt";

            Monitor.Monitoring = true;

            System.IO.File.WriteAllText(fileName, "test");

            while (Monitor.NumChangedFiles < 1)
            {
                Thread.Sleep(1);
            }

            string[] files = Monitor.GetChangedFiles().Distinct().ToArray();

            Assert.Contains(fileName, files);
        }