public ConcurrentFilesystemTraverser(string rootDirectoryPath) { directories = new Stack <Tuple <DirectoryInfo, DirectoryFingerprint> > (); files = new Queue <Tuple <FileInfo, DirectoryFingerprint> >(); // TBD: handle exceptions on root directory DirectoryInfo di = new DirectoryInfo(rootDirectoryPath); directories.Push(Tuple.Create <DirectoryInfo, DirectoryFingerprint>(di, null)); InitDirSkipList(rootDirectoryPath, ConfigFiles.GetDirectoriesFile()); InitFileSkipList(rootDirectoryPath, ConfigFiles.GetFilesIgnoreFile()); }