private void ExtractFolder(TreeIter iter, string path) { Packer.Item item = packStore.GetValue(iter, 0) as Packer.Item; if (item.IsRoot) { return; } else if (item.IsFolder) { try { DirectoryInfo info = Directory.CreateDirectory( path + System.IO.Path.DirectorySeparatorChar + item.Name); packStore.GetChilds(iter).ToList().ForEach(child => ExtractFolder(child, info.FullName)); } catch { } } else { ExtractFile(iter, path + System.IO.Path.DirectorySeparatorChar + item.Name); } }