Найти на жестком диске компьютера все файлы с заданным именем - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Ввести с клавиатуры произвольное имя текстового файла. - Найти на жестком диске компьютера все файлы с заданным именем (одноименные файлы могут находиться в разных папках), поочередно вывести на экран их содержимое. Если ни одного файла не найдено, выдать сообщение. - Выполнить обработку каждого найденного файла в соответствии с заданием в варианте. - Создать текстовый файл с именем программы, в который записать результаты выполнения программы, т.е. продублировать вывод информации на экран и в текстовый файл. Этот файл перезаписывать при каждом запуске программы. Подсчитать в файле количество символов «1».

Решение задачи: «Найти на жестком диске компьютера все файлы с заданным именем»

textual
Листинг программы
begin
  var lst := Seq('');
  var fn := ReadlnString('Имя файла для поиска: ');
  foreach var s : string in System.IO.Directory.GetDirectories(ReadlnChar('Буква диска, на котором будем искать файл: ') + ':\', '*.*', System.IO.SearchOption.TopDirectoryOnly) do
  begin
    var di := new System.IO.DirectoryInfo(s);
    if di.Attributes and System.IO.FileAttributes.Hidden <> System.IO.FileAttributes.Hidden then
    lst := lst.Concat(System.IO.Directory.GetFiles(s, fn, 
                                   System.IO.SearchOption.AllDirectories));
  end;
 
  var answer := lst.Count = 1 ? 
    'Файлы с заданным именем на диске отсутствуют' :
    lst.Where(name -> name <> '').
        Select(name -> Format('В файле {0} количество символов "1" = {1}', name, ReadAllText(name).Where(ch -> ch = '1').Count)).JoinIntoString(NewLine);
        
  // печатаем на экран:
  writeln(answer);
  // печатаем в файл:
  WriteAllText('myfile.txt', answer);
end.

Объяснение кода листинга программы

В данном коде на языке PascalABC.Net происходит поиск всех файлов с заданным именем на указанном диске компьютера и выводится количество файлов, если они есть.

  1. Создается пустая последовательность (lst) для хранения найденных файлов.
  2. Пользователю предлагается ввести имя файла для поиска.
  3. Происходит обход всех папок на выбранном диске (по указанной букве) с использованием метода GetDirectories, который возвращает список подкаталогов в указанной директории.
  4. Для каждого каталога происходит проверка атрибутов каталога на скрытый файл и, если это не скрытый файл, то происходит поиск всех файлов с заданным именем в текущем каталоге и его подкаталогах с использованием метода GetFiles.
  5. Результаты поиска (имена файлов) добавляются в последовательность (lst).
  6. Если в последовательности (lst) есть хотя бы один элемент, то выводится сообщение о том, что файлы с заданным именем на диске присутствуют.
  7. В противном случае выводится сообщение о том, что файлы с заданным именем на диске отсутствуют.
  8. При наличии файлов выводится количество символов 1 в каждом найденном файле.
  9. Результат выводится на экран.
  10. Результат также записывается в файл myfile.txt.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы