private void button1_Click(object sender, EventArgs e) { progressBar1.Hide(); listBox1.Items.Clear(); string target = textBox2.Text; IEnumerable <DataSample> result = Lucene.Search(target, "Content"); if (result.Count() != 0) { foreach (DataSample v in result) { listBox1.Items.AddRange(new string[] { v.Name }); } } else { listBox1.Items.Add("Поиск не дал результатов. Попробуйте поменять запрос."); } listBox1.IntegralHeight = true; listBox1.HorizontalScrollbar = true; Graphics g = listBox1.CreateGraphics(); int hzSize = ((int)g.MeasureString(listBox1.Items[0].ToString(), listBox1.Font).Width + 100) * 2; listBox1.HorizontalExtent = hzSize; }
private void button2_Click(object sender, EventArgs e) { progressBar1.Show(); progressBar1.Value = 0; button2.Hide(); label3.Text = "Подготовка к индексации файлов"; Application.DoEvents(); progressBar1.Step = 10; DateTime dold = DateTime.Now; progressBar1.PerformStep(); //Lucene.ClearIndex(); progressBar1.PerformStep(); DirectoryInfo source = new DirectoryInfo("C:/Users/УРП/Downloads/");// C:/Users/УРП/Downloads/"; label3.Text = "Проиндексировано 0 файлов"; Application.DoEvents(); try { FileInfo[] files = source.GetFiles("*.pdf", SearchOption.AllDirectories); int D; //количество документов D = files.Count(); try { progressBar1.Step = 5; Application.DoEvents(); if (D != 0) { int indexed_docs = 0; double inc = 70 / D; foreach (var f in files) { try { Lucene.AddUpdateIndex(new DataSample { Score = 1, Size = f.Length, LastModified = f.LastWriteTime, Name = f.FullName, Content = "" }); } catch (UnauthorizedAccessException uaex) { MessageBox.Show("Отказано в доступе к данному файлу " + f.FullName + ". " + uaex.Message + " \n Нажмите ОК чтобы продолжить.", "Сообщение об ошибке"); label3.Text = "Не удалось проиндексировать файл " + f.FullName; Application.DoEvents(); } indexed_docs++; while (inc >= 5) { progressBar1.PerformStep(); inc -= 5; } inc += 50 / D; label3.Text = "Проиндексировано " + indexed_docs + " файла(ов) из " + D + ". (/" + f.Name + ")"; Application.DoEvents(); } label3.Text = "Перестройка индексного файла."; Application.DoEvents(); Lucene.Optimize(); progressBar1.PerformStep(); TimeSpan sp = DateTime.Now - dold; MessageBox.Show(sp.ToString() + " время индексации", "Индексация завершена успешно."); label3.Text = "Индексация завершена"; } else { MessageBox.Show("В данной директории отсутствуют Pdf-файлы. Измените настройки и обновите приложение.", "Сообщение об ошибке"); } Application.DoEvents(); progressBar1.Step = 20; Application.DoEvents(); progressBar1.PerformStep(); progressBar1.PerformStep(); } catch { MessageBox.Show("В данной директории отсутствуют Pdf-файлы.", "Сообщение об ошибке"); } } catch (DirectoryNotFoundException ex) { MessageBox.Show("Директория не найдена. Измените настройки и обновите приложение. " + ex.Message, "Сообщение об ошибке"); } catch when(source == new DirectoryInfo("")) { MessageBox.Show("Задан пустой адрес. Измените путь к директории. Измените настройки и обновите приложение.", "Сообщение об ошибке"); } textBox2.Show(); button2.Show(); label2.Show(); button1.Enabled = true; }