public CBFSFilterTest() { _mFilter = new Cbfilter(); _mGuid = "{713CC6CE-B3E2-4fd9-838D-E28F558F6866}"; _driverPath = @"C:\Program Files\Callback Technologies\CBFS Filter 2020 .NET Edition\drivers\cbfilter.cab"; _mask = @"E:\FilesTest\*"; _fileWorker = new FilesWorker(); contentLength = 50; _fileContent = _fileWorker.GenerateFileContent(contentLength); numberOfFiles = 50000; _fileNames = _fileWorker.CreateFileNames(numberOfFiles); getOriginatorProcessName = false; getOriginatorProcessId = false; }
// ============================================================================================= // ВСПОМОГАТЕЛЬНЫЕ МЕТОДЫ ДЛЯ BACKGROUNDWORKER // ============================================================================================= #region BackgroundWorker: Вспомогательные методы private void validateFile(ListViewItem lvi, ref FB2Validator fv2Validator) { if (WorksWithBooks.isFileItem(lvi)) { string FilePath = Path.Combine(m_SourceDir.Trim(), lvi.SubItems[0].Text); if (File.Exists(FilePath)) { string Msg = fv2Validator.ValidatingFB2File(FilePath); lvi.SubItems[(int)ResultViewCollumnEnum.Validate].Text = Msg == string.Empty ? "Да" : "Нет"; if (!string.IsNullOrEmpty(Msg)) { lvi.ForeColor = Colors.FB2NotValidForeColor; } else { lvi.ForeColor = FilesWorker.isFB2File(FilePath) ? Color.FromName("WindowText") : Colors.ZipFB2ForeColor; } } } }
private void opennetdirectory_Click(object sender, EventArgs e) { if (folderBrowserDialog.ShowDialog() == DialogResult.OK) { string directorypath = folderBrowserDialog.SelectedPath; DirectoryInfo di = new DirectoryInfo(directorypath); FileInfo[] fi = di.GetFiles("NetRecvData*.dat"); if (fi.Length == 0) { MessageBox.Show("当前文件夹没有符合格式NetRecvData*.dat的文件!"); return; } List <FileInfo> lf = new List <FileInfo>(fi); isCommType = false; TimeData.Clear(); TimeLst.Clear(); DetailLstOfData.Clear(); DetailLstOfStatus.Clear(); FilesWorker.RunWorkerAsync(lf); } }
// загрузка из xml-файла в хэш таблицу данных о копиях книг private void loadListFromXML(ref BackgroundWorker bw, ref DoWorkEventArgs e, string FromXML) { XElement xmlTree = XElement.Load(FromXML); if (xmlTree != null) { XElement xmlBooks = xmlTree.Element("Books"); if (xmlBooks != null) { ProgressBar.Maximum = Convert.ToInt32(xmlBooks.Attribute("count").Value); // устанавливаем данные настройки поиска-сравнения m_textBoxAddress.Text = xmlTree.Element("SourceDir").Value; // перебор книг int i = 0; ListViewItem lvi = null; IEnumerable <XElement> Books = xmlBooks.Elements("Book"); foreach (XElement book in Books) { if ((bw.CancellationPending)) { e.Cancel = true; return; } string BookPath = book.Attribute("path").Value; string type = book.Attribute("type").Value; // в список - только существующие на диске книги и каталоги bool IsExist = false; if (type == "dir") { IsExist = Directory.Exists(BookPath) ? true : false; } else { IsExist = File.Exists(BookPath) ? true : false; } if (IsExist) { string FileName = book.Element("FileName").Value; string sForeColor = book.Element("ForeColor").Value; string sBackColor = book.Element("BackColor").Value; if (type == "dir") { if (FileName == "..") { lvi = new ListViewItem(FileName, 3); lvi.Tag = new ListViewItemType("dUp", BookPath); } else { lvi = new ListViewItem(FileName, 0); lvi.Tag = new ListViewItemType("d", BookPath); } } else { lvi = new ListViewItem(FileName, FilesWorker.isFB2File(BookPath) ? 1 : 2); lvi.Tag = new ListViewItemType("f", BookPath); } lvi.ForeColor = Color.FromName(sForeColor); lvi.BackColor = Color.FromName(sBackColor); lvi.SubItems.Add(book.Element("BookTitle").Value); lvi.SubItems.Add(book.Element("Authors").Value); lvi.SubItems.Add(book.Element("Genres").Value); lvi.SubItems.Add(book.Element("Sequence").Value); lvi.SubItems.Add(book.Element("Lang").Value); lvi.SubItems.Add(book.Element("BookID").Value); lvi.SubItems.Add(book.Element("Version").Value); lvi.SubItems.Add(book.Element("Encoding").Value); lvi.SubItems.Add(book.Element("Validation").Value); lvi.SubItems.Add(book.Element("Format").Value); lvi.SubItems.Add(book.Element("FileLength").Value); lvi.SubItems.Add(book.Element("FileCreationTime").Value); lvi.SubItems.Add(book.Element("FileLastWriteTime").Value); lvi.Checked = Convert.ToBoolean(book.Element("IsChecked").Value); m_listViewFB2Files.Items.Add(lvi); } bw.ReportProgress(++i); } m_LastSelectedItem = Convert.ToInt32(xmlTree.Element("SelectedItem").Value); MiscListView.SelectedItemEnsureVisible(m_listViewFB2Files, m_LastSelectedItem == -1 ? 0 : m_LastSelectedItem); } } }