Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Пример « программа поиска файлов на компьютере »

Создаем вид нашей программы поиска файлов на компьютере:

Пример « программа поиска файлов на компьютере »

Тут всего лишь 2 элемента textBox1, который будет служить для ввода папки поиска и кнопки button1, для запуска поиска.

Следующим шагом нам понадобиться подредактировать вид нашей программы поиска файлов на компьютере и назвать используемые объекты более понятным именем.

Сначала поработаем со свойствами формы:

  1. Text - Поиск файлов на компьютере
  2. Текст, который отображается рядом с иконкой

  3. MaximizeBox - false; MinimizeBox - false
  4. Окошки, для минимизации и максимизации окна. Ставим их значения = false, что б они не отображались в нашей программе

  5. FormBorderStyle - FixedSingle
  6. Это свойство определяет поведение границ формы. В нашем случае мы ставим значение так, что б при запуске программы, вручную нельзя было изменить размеры окна

Ну и нашим основным элементам присвоим внятные имена для удобной и понятной работы с кодом - textBoxPath и buttonStart. А текст для кнопки сами напишите.

Вот наш готовый шаблон:

Пример « программа поиска файлов на компьютере »

Давайте теперь займемся написанием кода. Тут нам нужно всего-навсего обрабатывать одно событие - нажатие кнопки.

Сначала мы должны написать функцию поиска нужного файла на компьютере, которая будет возвращать его полный путь, а передаваться в нее будет директория поиска и имя файла, который нам нужно найти:

public string FindFile(DirectoryInfo dir, string name)
{
   foreach (FileInfo file in dir.GetFiles())
   {
      if (file.Name == name)
      {
         return file.FullName;
      }
   }
   return "Error";
}

Эта функция будет просматривать все файлы в заданном каталоге и если найдется совпадение с нашем именем файла, то возвратится его полный путь, иначе = "Error".

Вот теперь давайте обработаем наше событие - нажатие на кнопку начала поиска на компьютере:

private void buttonStart_Click(object sender, EventArgs e)
{
   DirectoryInfo dir = new DirectoryInfo(textBoxPath.Text);
   MessageBox.Show(FindFile(dir, "МСКаст #1.avi"));
}

Тут все просто. Первым шагом создаем объект DirectoryInfo для работы с каталогами, передав путь, введенный в textBoxPath.

И, далее, выводим результат выполнения функции поиска файла:

  1. вводим путь поиска

  2. Пример « программа поиска файлов на компьютере »
  3. получаем результат поиска

Программа поиска на компьютере готова, но тут есть над чем поработать. Только это предстоит не мне, а вам.

  1. Первая доработка простая - попробуйте нажать на кнопку ОК, не вводя пути поиска
  2. для решения этой проблемы существует два подхода: перехватить исключение или предусмотреть условие в обработке события

  3. Поиск в текущем каталоге - хорошо, а поиск в текущем и во вложенных каталогах - еще лучше
  4. решением будет является создание рекурсии в нашей функции. Передавая в нее же, поочередно, путь каждого из подкаталогов.

  5. Для полного счастья измените функцию поиска так, что б возвращался полный путь в случае содержания подстроки. Например: при поиске файла "шахматы.txt" можно задавать: шах, маты.
  6. можно будет попробовать найти функцию, которая ищем подстроку в строке, или самим написать реализацию этой функции, или же прочесть статью - Регулярные выражения

При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru