Найти на жестком диске компьютера все файлы с заданным именем - 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 происходит поиск всех файлов с заданным именем на указанном диске компьютера и выводится количество файлов, если они есть.
- Создается пустая последовательность (lst) для хранения найденных файлов.
- Пользователю предлагается ввести имя файла для поиска.
- Происходит обход всех папок на выбранном диске (по указанной букве) с использованием метода GetDirectories, который возвращает список подкаталогов в указанной директории.
- Для каждого каталога происходит проверка атрибутов каталога на скрытый файл и, если это не скрытый файл, то происходит поиск всех файлов с заданным именем в текущем каталоге и его подкаталогах с использованием метода GetFiles.
- Результаты поиска (имена файлов) добавляются в последовательность (lst).
- Если в последовательности (lst) есть хотя бы один элемент, то выводится сообщение о том, что файлы с заданным именем на диске присутствуют.
- В противном случае выводится сообщение о том, что файлы с заданным именем на диске отсутствуют.
- При наличии файлов выводится количество символов
1
в каждом найденном файле. - Результат выводится на экран.
- Результат также записывается в файл
myfile.txt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д