public static void createEntry(Queue<History> historyQueue, Hashtable metadata, Entry entry, EntryElement p, EntryElement e) { EntryElement newElement = new EntryElement { Index = e.Index, Type = e.Type, File = e.File, Children = e.Children, NamedChildren = e.NamedChildren, Metadata = e.Metadata }; historyQueue.Enqueue(p.addChild(entry, newElement)); if (e.Type == EntryType.Folder) { EntryElement[] childrenList = e.getChildren(); foreach (EntryElement c in childrenList) { createEntry(historyQueue, metadata, entry, newElement, c); } } }