/// <summary> /// Read and filtering files from incDir directory /// and display it into datagridview1 /// </summary> /// <param name="incDir"></param> void ReadAndDisplayFilesInDGV(string incDir, List <CONSTS.Filter> filters, bool HideUncheked, bool rebuildModel) { if (!Directory.Exists(incDir)) { return; } (dataGridView1.Columns[2] as DataGridViewComboBoxColumn).Items.Clear(); (dataGridView1.Columns[2] as DataGridViewComboBoxColumn).Items.AddRange(CONSTS.DIRS()); var filepaths = Directory.GetFiles(incDir); if (UseFilter) { AllFiles = new QueueFiles(filepaths, filters, CONSTS.FilesExceptions); //отфильтрованный список файлов if (UseML) { var predictedFiles = new QueueFiles(filepaths, filters, CONSTS.FilesExceptions, rebuildModel, MinScore); //отфильтрованный список файлов for (int i = 0; i < AllFiles.Files.Count; i++) //для всех нераспознанных файлов применяем результаты нейросети { if (String.IsNullOrWhiteSpace(AllFiles.Files[i].DestinationDir)) { AllFiles.Files[i] = predictedFiles.Files.First(x => x.FileName == AllFiles.Files[i].FileName); } } } } else if (UseML) { AllFiles = new QueueFiles(filepaths, filters, CONSTS.FilesExceptions, rebuildModel, MinScore); //отфильтрованный список файлов } AllFiles.Files.Sort(new QFileComparer()); if (HideUncheked) { bindingSource1.DataSource = AllFiles.Files.Where(x => x.Copy); } else { bindingSource1.DataSource = AllFiles.Files; } dataGridView1.DataSource = bindingSource1; SetStatus(AllFiles.Files.Count(x => x.Copy), AllFiles.Files.Count()); }
private int MinScore; //minimal level of prediction public MainForm() { InitializeComponent(); if (!Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), "Data"))) { Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), "Data")); } this.FormClosing += formClosingMethod; dataGridView1.DataBindingComplete += DataGridView1_DataBindingComplete; dataGridView1.CellContentClick += cellClick; dataGridView1.CellClick += dataGridView1_CellClick; dataGridView1.CellDoubleClick += dataGridView1_CellDoubleClick; comboFilters.SelectedIndexChanged += comboFilters_SelectedIndexChanged; dataGridView1.DataError += dataGridView1_DataError; tbSearch.TextChanged += tbSearch_TextChanged; filters = CONSTS.Filters; QueueFiles.QueueEvent += QueueFiles_QueueEvent; #region Read config cfg = new IniFile(ConfigFile); ReadFiltersCfg(cfg); ReadSettings(cfg); ReadFilesExceptions(cfg); tsMenuUseML.Checked = UseML; #endregion dataGridView1.AllowUserToAddRows = false; (dataGridView1.Columns[2] as DataGridViewComboBoxColumn).Items.AddRange(CONSTS.DIRS()); #region ComboFilters comboFilters.Items.AddRange(namesFilters()); comboFilters.Items.Add("Все фильтры"); comboFilters.SelectedItem = "Все фильтры"; #endregion if (IncomingDir != null && Directory.Exists(IncomingDir)) { ReadAndDisplayFilesInDGV(IncomingDir, filters, checkBox1.Checked, false); } }