private void backgroundWorkerImportOPC_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker  = sender as BackgroundWorker;
            OpenFileDialog   ofd     = e.Argument as OpenFileDialog;
            string           opcFile = ofd.FileName;

            this.listAddress = ETSImport.ParseOpcFile(opcFile, worker);
        }
        private void backWorkerImport_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            OpenFileDialog   ofd    = e.Argument as OpenFileDialog;

            worker.ReportProgress(0, UIResMang.GetString("TextIsCopying"));

            // 存放ETS文件,解压并解析xml
            string etsProjectFile = Path.Combine(MyCache.ProjTempFolder, ofd.SafeFileName);

            File.Copy(ofd.FileName, etsProjectFile);

            // 导入的地址表
            this.listAddress = ETSImport.ParseEtsProjectFile(etsProjectFile, worker);
        }
        /// <summary>
        /// 导入 ETS 项目导出的地址文件 xml 格式
        /// </summary>
        private void ImportEtsAddressXml()
        {
            try
            {
                using (var ofd = new OpenFileDialog())
                {
                    //ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                    ofd.Filter           = XmlFilter;
                    ofd.FilterIndex      = 1;
                    ofd.DefaultExt       = "xml";
                    ofd.RestoreDirectory = true;

                    if (ofd.ShowDialog(this) == DialogResult.OK)
                    {
                        ClearProjTempFolder();

                        // 存放ETS文件,解压并解析xml
                        if (ofd.SafeFileName != null)
                        {
                            string etsXmlFile = Path.Combine(MyCache.ProjTempFolder, ofd.SafeFileName);
                            File.Copy(ofd.FileName, etsXmlFile);
                            // 导入的地址表
                            var importAddress = ETSImport.ParseGroupAddressXml(etsXmlFile);

                            //Merge(importAddress);
                        }

                        //this.dgvGroupAddress.DataSource = new BindingList<GroupAddress>(MyCache.GroupAddressTable);
                        LoadAllAddress();

                        //_saved = false;
                    }
                }
            }
            catch (Exception ex)
            {
                string errorMsg = UIResMang.GetString("Message17");
                MessageBox.Show(errorMsg, UIResMang.GetString("Message6"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log.Error(errorMsg + LogHelper.Format(ex));
            }
        }