private static void IterateFileData(Filter filter, KeyValues data) { for (int i = 0; i < data.GetItems().Count(); i++) { filter.AddFile(data.GetItems()[i].key, data.GetItems()[i].value); } for (KeyValues sub = data.GetFirstKey(); sub != null; sub = data.GetNextKey()) { Filter newSub = filter.AddSubFilter(sub.GetName()); IterateFileData(newSub, sub); } }