Esempio n. 1
0
        // удалить помеченные файлы...
        public void DeleteCheckedFiles(ref BackgroundWorker bw, ref DoWorkEventArgs e, ListView lvResult)
        {
            int i = 0;

            ListView.CheckedListViewItemCollection checkedItems = lvResult.CheckedItems;
            foreach (ListViewItem lvi in checkedItems)
            {
                // Проверить флаг на остановку процесса
                if (bw.CancellationPending)
                {
                    e.Cancel = true;                     // Выставить окончание - по отмене, сработает событие bwcmd_RunWorkerCompleted
                    return;
                }
                else
                {
                    string sFilePath = lvi.Text;
                    if (File.Exists(sFilePath))
                    {
                        File.Delete(sFilePath);
                        if (m_Fast)
                        {
                            // пометка цветом и зачеркиванием удаленных книг с диска, но не из списка (быстрый режим удаления)
                            WorksWithBooks.markRemoverFileInCopyesList(lvi);
                        }
                        m_bFilesWorked |= true;
                    }
                    bw.ReportProgress(++i);
                }
            }
        }
Esempio n. 2
0
        // =============================================================================================
        //                  Реализация Copy/Move/Delete помеченных книг
        // =============================================================================================
        #region  еализация Copy/Move/Delete помеченных книг
        // копировать или переместить файлы в...
        public void CopyOrMoveCheckedFilesTo(ref BackgroundWorker bw, ref DoWorkEventArgs e,
                                             bool IsCopy, string SourceDir, string TargetDir,
                                             ListView lvResult, int nFileExistMode)
        {
            int i = 0;

            ListView.CheckedListViewItemCollection checkedItems = lvResult.CheckedItems;
            foreach (ListViewItem lvi in checkedItems)
            {
                // Проверить флаг на остановку процесса
                if ((bw.CancellationPending))
                {
                    e.Cancel = true;                     // Выставить окончание - по отмене, сработает событие bwcmd_RunWorkerCompleted
                    return;
                }
                else
                {
                    string FilePath = Path.Combine(SourceDir, lvi.Text);
                    // есть ли такая книга на диске? Если нет - то смотрим следующую
                    if (File.Exists(FilePath))
                    {
                        string   NewPath = Path.Combine(TargetDir, Path.GetFileName(FilePath));
                        FileInfo fi      = new FileInfo(NewPath);
                        if (!fi.Directory.Exists)
                        {
                            Directory.CreateDirectory(fi.Directory.ToString());
                        }

                        if (File.Exists(NewPath))
                        {
                            if (nFileExistMode == 0)
                            {
                                File.Delete(NewPath);
                            }
                            else
                            {
                                NewPath = FilesWorker.createFilePathWithSufix(NewPath, nFileExistMode);
                            }
                        }
                        if (IsCopy)
                        {
                            File.Copy(FilePath, NewPath);
                        }
                        else
                        {
                            File.Move(FilePath, NewPath);
                            if (!m_Fast)
                            {
                                lvResult.Items.Remove(lvi);
                            }
                            else
                            {
                                // пометка цветом и зачеркиванием удаленных книг с диска, но не из списка (быстрый режим удаления)
                                WorksWithBooks.markRemoverFileInCopyesList(lvi);
                            }
                        }
                        m_bFilesWorked |= true;
                        bw.ReportProgress(++i);
                    }
                }
            }
        }