Файл: Отчет о выполнении лабораторной работы 3 по дисциплине Информатика Преподаватель Бусыгин К. Н.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 48

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерациифедеральное государственное бюджетное образовательное учреждениевысшего образования«Санкт-Петербургский государственный университет промышленных технологий и дизайна»Институт информационных технологий и автоматизацииКафедра: Интеллектуальных систем и защиты информацииНаправление подготовки: 10.03.01 Информационная безопасностьПрофиль подготовки: Информационная безопасность в коммерческих структурахОТЧЕТо выполнении лабораторной работы №3по дисциплине: «Информатика»Преподаватель: Бусыгин К. Н.Обучающийся: Голубева А.П.Курс: 1 Учебная группа: МДА-7Санкт-Петербург2020

  1. Написать утилиту, которая принимает имя файла (в параметрах вызова программы) и распечатывает его атрибуты (абсолютный путь, является ли обычным файлом, директорией, символьной ссылкой, исполняемым файлом, скрытым, читаемым, записываемым, времена создания, доступа и модификации, его размер в байтах).
Код Java:import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.BasicFileAttributes;public class n1 {public static void main(String[] args) {Path base = Paths.get("Waiting_For_Love-Avicii.mp3");Path p = base.toAbsolutePath();System.out.println(p);try {if(Files.isHidden(p))System.out.println("is Hidden.");if(Files.isRegularFile(p))System.out.println("is Regular File.");if(Files.isDirectory(p))System.out.println("is Directory.");if(Files.isSymbolicLink(p))System.out.println("is Symbolic Link.");if(Files.isReadable(p))System.out.println("is Readable.");if(Files.isWritable(p))System.out.println("is Writable.");if(Files.isExecutable(p))System.out.println("is Executable.");System.out.println(Files.size(p));BasicFileAttributes attrs = Files.readAttributes(p, BasicFileAttributes.class);System.out.println(attrs.lastModifiedTime());System.out.println(attrs.lastAccessTime());}catch (Exception e) {e.printStackTrace();}}}Вывод:

  1. Найти все скрытые файлы и каталоги в %windir%windir%windir%. Реализовать в двух вариантах: с помощью Files.newDirectoryStream и с Files.walkFileTree.

Код Java:2.1import java.nio.file.attribute.BasicFileAttributes;import java.nio.file.*;import static java.nio.file.FileVisitResult.CONTINUE;import java.nio.file.FileVisitResult;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.SimpleFileVisitor;public class n2 {public static void main(String[] args) {Path p = Paths.get("C:","WINDOWS");try {Files.walkFileTree(p, new printFiles());}catch (Exception e) {e.printStackTrace();}}}class printFiles extends SimpleFileVisitor{@Overridepublic FileVisitResult visitFile(Path a, BasicFileAttributes b) {try {if (b.isRegularFile() && Files.isHidden(a)) {System.out.format("File: %s ", a);} else if (b.isDirectory() && Files.isHidden(a)) {System.out.format("Directory: %s ", a);}}catch (Exception e) {e.printStackTrace();}return CONTINUE;}}Вывод:2.2import java.nio.file.*;import java.util.*;public class no2 {public static void main(String[] args) {Listf = new ArrayList<>();Path = Paths.get("C:\\Windows");try {DirectoryStreamstream= Files.newDirectoryStream(path);for (Path entry : stream) {try {if ((Files.isRegularFile(entry)||Files.isDirectory(entry)) && Files.isHidden(entry)) {f.add(entry);}}catch (Exception e){e.printStackTrace();}}stream.close();}catch (Exception e){e.printStackTrace();}for (Path entry : f) {System.out.println(entry.toString());}}}Вывод:

  1. Написать утилиту, которая ищет в директории и всех ее
поддиректориях все файлы с заданным расширением, которые были изменены в последнее время. Путь к директории, расширение и порог времени модификации передавать в параметрах вызова программы. Найти с ее помощью все недавно измененные файлы.exe и .dll в директории %windir% System32.Код Java:import java.nio.file.attribute.*;import java.io.*;import java.nio.file.*;import java.time.Instant;import java.util.*;public class n3 {static Listfiles = new ArrayList<>()public static void main(String[] args) {Path p = Paths.get("C:\\Windows\\System32");try {listFiles(p);} catch (Exception e) {e.printStackTrace();}for (Path entry : files) {System.out.println(entry.toString());}}static void listFiles (Path p) throws IOException {try (DirectoryStreamstream = Files.newDirectoryStream(p, "*.{exe,dll}")) {for (Path entry : stream) {if (Files.isDirectory(entry)) {listFiles(entry);}BasicFileAttributes a = Files.readAttributes(entry, BasicFileAttributes.class);if (Files.isRegularFile(entry) && FileTime.from(Instant.now().minusMillis(Long.parseLong(args[1])).compareto(a.lastModifiedTime())))n3.files.add(entry);}}}}Вывод: