Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2016, 21:20   #1
x_Alex_x
Пользователь
 
Регистрация: 13.01.2013
Сообщений: 94
По умолчанию Снимок директории

Здравствуйте! У меня вопрос про то, как правильно организовать логику программы.
Я делаю программу-синхронизатор на Java. Нужно написать класс, который будет представлять собой снимок директории. Полем этого класса помимо прочих должен быть массив/дерево файлов и папок, находящихся внутри. Проблема в том, что для файлов мне нужно хранить параметры их состояния (размер и дату изменения), а для папок достаточно хранить только путь.
Сейчас я придумал такой путь: создаю класс с тремя полями: путь, размер и дата. Экземплярами этого класса и заполняется массив класса-снимка. При этом, если описывается папка, поля размер и дата не заполняются за ненадобностью. Этот подход меня не совсем устраивает и я бы хотел услышать о способах его улучшения.
x_Alex_x вне форума Ответить с цитированием
Старый 03.10.2016, 02:51   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Двусвязным списком это делаете


Код:
   
//http://ru.stackoverflow.com/questions/110886/%D0%94%D0%B2%D1%83%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D1%8B%D0%B9-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BD%D0%B0-java
   public class Node {
  private Node element;
  private Node next;

  public Node getElement(){
    return element;
  }

  public void setElement(Node e){
    element = e;
  }

  public Node getNext() {
    return next;
  }

  public void setNext(Node n) {
    next = n;
  }
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 03.10.2016, 03:31   #3
predefined
Форумчанин
 
Регистрация: 01.08.2016
Сообщений: 182
По умолчанию

x_Alex_x, в Unix-подобных системах всё является файлами, даже директории. Имеют и размер, и даты(создания/модификации/последнего_доступа), см левую картинку ниже.
И кроме этого - и файлы и директории имеют кучу атрибутов: "владельца", права доступа, и могут иметь дополнительные флажки (исполняемый скрипт и тп), см нижнюю правую картинку.
И ещё есть "симлинки"(символьные ссылки), и жёсткие ссылки(в пределах одной файловой системы).

Как собираетесь это "хозяйство" разруливать?
Изображения
Тип файла: jpg unix.jpg (17.2 Кб, 80 просмотров)
Тип файла: jpg file.jpg (15.0 Кб, 79 просмотров)

Последний раз редактировалось predefined; 03.10.2016 в 03:44.
predefined вне форума Ответить с цитированием
Старый 03.10.2016, 13:40   #4
x_Alex_x
Пользователь
 
Регистрация: 13.01.2013
Сообщений: 94
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Двусвязным списком это делаете
Но ведь такой способ не подойдёт для представления ФС?
Я начал делать немного по-другому:
Код:
abstract class FileTreeNode {
    private TreeElementFolder parent;
}

class TreeElementFolder extends FileTreeNode {
    List<FileTreeNode> children;
}

class TreeElementFile extends FileTreeNode{
    private long size;
    private Date changeDate;
}
Цитата:
Сообщение от predefined Посмотреть сообщение
x_Alex_x, в Unix-подобных системах всё является файлами...
А теперь я вовсе сомневаюсь в правильности моего нового подхода. Уж тогда лучше не изобретать велосипед, а просто расширить java-класс File, добавив те два поля.
x_Alex_x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снимок окна в .bmp ponchic Win Api 2 22.01.2016 12:07
directshow и снимок с камеры cooljedi Visual C++ 2 21.03.2015 15:33
Снимок с вебкамеры oFFlineby Мультимедиа в Delphi 1 23.09.2011 19:44
gdi+ снимок экрана Pedro Мультимедиа в Delphi 6 10.01.2010 22:51
Снимок экрана Viteef Общие вопросы Delphi 9 16.05.2007 20:12