DirectoryPoller dp = new DirectoryPoller(); dp.PollingDirectory = @"c:\temp\poll\"; dp.AddFileProcess("data[0-9]+", DBUtils.ImportText(filePath)); dp.Poll();
DirectoryPoller dp = new DirectoryPoller(); dp.PollingDirectory = @"c:\temp\poll\"; dp.AddFileProcess("data[0-9]+", delegate(string filePath) { Console.Out.WriteLine("found file: " + filePath); }); dp.Poll();
dp.AddFileProcess("data[0-9]+", filePath => { Console.Out.WriteLine("found file: " + filePath); });
using System; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; namespace Utility { public delegate void ProcessFile(string filePath); public class DirectoryPoller { private string _pollingDirectory = String.Empty; private Dictionary _fileProcesses = new Dictionary(); public string PollingDirectory { get { return _pollingDirectory; } set { _pollingDirectory = value; } } public void Poll() { if (_fileProcesses != null && _fileProcesses.Count > 0) { if (Directory.Exists(_pollingDirectory)) { foreach (string path in Directory.GetFiles(_pollingDirectory, "*.*", SearchOption.TopDirectoryOnly)) { foreach (string fileRegEx in _fileProcesses.Keys) { if (Regex.IsMatch(Path.GetFileName(path), fileRegEx)) //filename matches { _fileProcesses[fileRegEx].Invoke(path); //invoke delegate break; //match only on one RegEx } } } } else { throw new ApplicationException(String.Format("Directory {0} not found.", _pollingDirectory)); } } } public void AddFileProcess(string fileRegEx, ProcessFile processMethod) { _fileProcesses.Add(fileRegEx, processMethod); } } }
Remember Me
Powered by: newtelligence dasBlog 1.8.5223.2
© Copyright 2008, Troy DeMonbreun
E-mail