Пример #1
0
        private void StartProc(object sender, DoWorkEventArgs e)
        {
            string[]   files; // каталог с файлами
            STFileInfo stFI;

            try
            {
                // находим все файлы для закачки
                files = Directory.GetFiles(clParam.s_Path.pathsgmfile, "NBL*?.sgm");

                // цикл по ним
                foreach (string file in files)
                {
                    // если нажата кнопка отмена - выскакиваем
                    if (backgroundWorker1.CancellationPending)
                    {
                        e.Cancel = true;
                        backgroundWorker1.ReportProgress(0);
                        return;
                    }

                    FileInfo FI = new FileInfo(file);

                    stFI           = new STFileInfo();
                    stFI.idseason  = IS.idseason;
                    stFI.filename  = FI.Name;
                    stFI.enterdate = DateTime.Now;

                    // проверяем не записан ли этот файл ранее
                    STFileInfo?inbase = clFileInfo.GetRecord(stFI.idseason, stFI.filename);
                    if (inbase != null)
                    {
                        if (MessageBox.Show(string.Format("Файл {0} был записан ранее. Перезаписать?", FI.Name),
                                            "Внимание!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                        {
                            clFileInfo.Update(stFI, (STFileInfo)inbase);
                            fileinfo = write_file(file); // перезаписываем

                            //  AddItemToList(fileinfo);
                        }
                    }
                    else
                    {
                        clFileInfo.Insert(stFI);
                        fileinfo = write_file(file); // если не записан такой файл записываем его

                        //      AddItemToList(fileinfo);
                    }

                    // если все хорошо переносим его в архив  и удаляем с пула
                    if (fileinfo.iErrorCode == 0)
                    {
                        string archfile = Path.Combine(clParam.s_Path.pathsgmfilearch, FI.Name);

                        if (File.Exists(archfile))
                        {
                            File.Delete(archfile);
                        }

                        FI.MoveTo(Path.Combine(clParam.s_Path.pathsgmfilearch, FI.Name));
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message, ex.Source); }
        }