예제 #1
0
 //запускаем инкременый поиск в папках
 public void gogle()
 {
     string[] PatchDir = Directory.GetDirectories(StartPatch);
     try
     {
         foreach(string MyPatch in PatchDir)
         {
             //создаем задачу
             Potok ForStartTask;
             //создаем новый обьект класса Sercher
             ForStartTask.Sercher = new Searchkliko()
             {
                 //передаем в него путь где нужно искать Kliko
                 StartPatch = MyPatch
             };
             //задаем функцию которую будем выполнять в отдельном потоке
             ForStartTask.PotockSearch = new Thread(ForStartTask.Sercher.GetSearch);
             //добавляем данный поток в список для поиска
             TaskList.Add(ForStartTask);
             //запускаем поиск
             ForStartTask.PotockSearch.Start();
         }
     }
     catch
     {
     }
     //Итак ждем завершения поиска всех данных
     while (Finished())
     {
         //чтобы процесс не вешал систему проверяем действие каждые 50 милисекунд
         Thread.Sleep(50);
     }
     //обьявляем класс вохранения данных в таблицу
     Digest MyDigest = new Digest();
       //  Console.WriteLine(" поиск окончен сохраняем данные ");
     //когда все потоки закончат поиск будем соберать данные в таблицу
     foreach (Potok SelectTask in TaskList)
     {
         //перебираем данные из найденного списка
         foreach (string FindPatch in SelectTask.Sercher.SerchResult)
         {
            // Console.WriteLine("получение данных о "+FindPatch);
             //добавляем данные в таблицу
             MyDigest.Digestpatch = FindPatch;
             //добавляем данные в таблицу
             MyDigest.ADDRowDigest();
            // Console.WriteLine("Время обновления папки " + MyDigest.DateUpdate+"\t Путь к диретории " + MyDigest.Digestpatch+"\t Имя Kliko" + MyDigest.DigestName );
         }
     }
 }