public bool SaveAs(GCTNode node, bool writeInfo)
        {
            if (dlgSave.ShowDialog(this) != DialogResult.OK)
                return false;

            string path = dlgSave.FileName;
            if (!String.IsNullOrEmpty(path))
            {
                try
                {
                    node.Children.Clear();
                    foreach (ListViewItem e in lstCodes.Items)
                        if (e.Checked)
                            node.Children.Add(e.Tag as GCTCodeEntryNode);

                    if (Path.GetExtension(path).ToUpper() == ".TXT")
                        node.ToTXT(path);
                    else
                    {
                        node._writeInfo = writeInfo;
                        node.Merge();
                        node.Export(node._origPath = path);
                        node.IsDirty = false;
                        txtPath.Text = path;
                    }
                    return true;
                }
                catch { return false; }
            }
            return false;
        }