private void enumerate(EnumeratorDelegate func, FileIndexorNode parent) { foreach (FileIndexorNode node in parent.Nodes) { enumerate(func, node); func(node.Path, node.Files); } }
/// <summary> /// 모든 노드를 재귀적으로 탐색합니다. /// </summary> /// <param name="func"></param> public void Enumerate(EnumeratorDelegate func, bool subdir = true) { foreach (FileIndexorNode node in GetRootNode().Nodes) { func(node.Path, node.Files); if (subdir == true) { enumerate(func, node); } } }
internal static extern bool EnumDesktopWindows(IntPtr hDesktop, EnumeratorDelegate lpEnumCallbackFunction, IntPtr lParam);