private void OpenProject(string fileName, bool create, Action <Exception> result) { EsperProject p = null; FileStore.Directory r = null; _worker.Do(() => { p = new EsperProject(fileName, create); r = p.FileStore.GetFullTree(); }, (e) => { if (e != null) { MessageBox.Show("FileStore error occured:\n" + e.Message ?? e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { BeforeInitialize?.Invoke(this, EventArgs.Empty); _project = p; _root = r; Init(); } result?.Invoke(e); }); }
private void _Init(FileStore.Directory root, TreeNodeCollection nodes) { foreach (var dir in root.Directories) { var node = new TreeNode(dir.Name); node.Tag = dir; nodes.Add(node); _Init(dir, node.Nodes); } foreach (var file in root.Files) { if (file.GetFullSystemPath() != _project.FullFileName) { var node = new TreeNode(file.Name); node.Tag = file; nodes.Add(node); } } }