Task 19 — Операции с файловой системой

Просмотр директорий и работа с файловым деревом.

Редактировать источник

Задание

Просмотр директорий и работа с файловым деревом. Документация собрана по исходному коду этой практики.

Решение

Полный код решения по этой практике:

Исходные файлы решения

  • Task19/conversion.java
  • Task19/DirectoryListing.java
  • Task19/storage.java

Task19/conversion.java

Task19/conversion.java
package Task19;

import java.util.ArrayList;

public class conversion<T> {
    public static <T> ArrayList<T> convertArrToList(T[] arr){
            ArrayList<T> conversion_list = new ArrayList<>();
            for (int i = 0; i < arr.length; i++) {
                conversion_list.add((T) arr[i]);
            }
            return conversion_list;
    }
    public static void main(String[] args){
        Integer[] arr = new Integer[] {1,2,3,4,56,7,8};
        System.out.println(convertArrToList(arr));
    }
}

Task19/DirectoryListing.java

Task19/DirectoryListing.java
package Task19;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class DirectoryListing {
    public static void main(String[] args) {
        String directoryPath = "D:\\Учеба\\3 семестр\\Java";

        List<String> fileList = listFiles(directoryPath);

        for (int i = 0; i < Math.min(5, fileList.size()); i++) {
            System.out.println(fileList.get(i));
        }
    }
    public static List<String> listFiles(String directoryPath) {
        List<String> fileList = new ArrayList<>();

        File directory = new File(directoryPath);

        File[] files = directory.listFiles();

        if (files != null && files.length > 0) {
            System.out.println("Первые 5 элементов каталога:");

            fileList = Arrays.asList(files).stream().map(File::getName).toList();
        } else {
            System.out.println("Каталог пуст или не существует.");
        }

        return fileList;
    }
}

Task19/storage.java

Task19/storage.java
package Task19;

public class storage<T> {
    private T[] array;
    public storage(int size) {
        this.array = (T[]) new Object[size];
    }

        public void setElement(int index, T value) {
            array[index] = value;
        }

        public T getElement(int index) {
            return array[index];
        }

        public int getSize() {
            return array.length;
        }
        public String toString(){
            for(int i =0; i< array.length;i++){
                System.out.println(array[i]);
            }
            return null;
        }

        public static void main(String[] args) {
            // Пример использования
            storage<Integer> intArray = new storage<>(5);
            intArray.setElement(0, 1);
            intArray.setElement(1, 2);
            intArray.setElement(2, 3);

            System.out.println("Элемент 1: " + intArray.getElement(1));
            intArray.toString();

            storage<String> stringArray = new storage<>(3);
            stringArray.setElement(0, "Hello");
            stringArray.setElement(1, "World");

            System.out.println("Элемент 0: " + stringArray.getElement(0));
            stringArray.toString();
        }
    }

Описание

В этом модуле используется 3 Java-файлов. Ключевые сущности: conversion, DirectoryListing, storage.

tip

Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами.

Вывод

Task 19 — Операции с файловой системой документирует реальное решение из исходного кода.