Файл: Отчет о выполнении лабораторной работы 3 по дисциплине Информатика Преподаватель Бусыгин К. Н.docx
Добавлен: 23.11.2023
Просмотров: 10
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации
федеральное государственное бюджетное образовательное учреждение
высшего образования
«Санкт-Петербургский государственный университет промышленных технологий и дизайна»
Институт информационных технологий и автоматизации
Кафедра: Интеллектуальных систем и защиты информации
Направление подготовки: 10.03.01 Информационная безопасность
Профиль подготовки: Информационная безопасность в коммерческих структурах
ОТЧЕТ
о выполнении лабораторной работы №3
по дисциплине: «Информатика»
Преподаватель: Бусыгин К. Н.
Обучающийся: Голубева А.П.
Курс: 1 Учебная группа: МДА-7
Санкт-Петербург
2020
-
Написать утилиту, которая принимает имя файла (в параметрах вызова программы) и распечатывает его атрибуты (абсолютный путь, является ли обычным файлом, директорией, символьной ссылкой, исполняемым файлом, скрытым, читаемым, записываемым, времена создания, доступа и модификации, его размер в байтах).
Код 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();
}
}
}
Вывод:
-
Найти все скрытые файлы и каталоги в %windir%windir%windir%. Реализовать в двух вариантах: с помощью Files.newDirectoryStream и с Files.walkFileTree.
Код Java:
2.1
import 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
{
@Override
public 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.2
import java.nio.file.*;
import java.util.*;
public class no2 {
public static void main(String[] args) {
List
f = new ArrayList<>();
Path = Paths.get("C:\\Windows");
try {
DirectoryStream
stream= 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());
}
}
}
Вывод:
-
Написать утилиту, которая ищет в директории и всех ее
поддиректориях все файлы с заданным расширением, которые были изменены в последнее время. Путь к директории, расширение и порог времени модификации передавать в параметрах вызова программы. Найти с ее помощью все недавно измененные файлы.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 List
files = 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 (DirectoryStream
stream = 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);
}
}
}
}
Вывод: