Mikoratanakaki
Откуда берутся элементы?
Bogdan
меня бесит что win api через проводник создаёт файл с дебильным именем, а потом переименовывает
Andrii
Теюе же больше надо, вот и пищи, если есть вопросы и проблемы
Bogdan
из за этого и возникает проблема контроля за файлом
Andrii
а если эта штука у пользователя не включена то что тогда
Тогда надо включить, например, при установке. В мануале написать.
Andrii
Как вариант, какую-то свою виртуальную FS написать, и будешь ловить все изменения
Bogdan
самому контролировать win api и самому прописывать события и инвокать их
Иван
А зачем Win Api? Есть же java.nio.file.Path - getLastModifiedTime метод
Bogdan
нет
Bogdan
это так не работает
Иван
В старой java.io.File - lastModified метод
Bogdan
ты достанешь последнюю дату если это событие
Bogdan
ты ведь никогда не знаешь когда сработает обработчик событий
Алексей
Нет конечно) Это язык разметки)))
Язык разметки тоже язык программирования, иначе и SQL не язык программирования
Иван
Ааа понял, дело сложнее
Bogdan
у меня вся суть в том что есть ивенты они срабатывают если меняется файловая система и типо последнюю дату достать как 2 пальца об асфальт
Bogdan
а предыдущую так просто не достанешь ибо врядли можно сделать событие на событие
Bogdan
а делегирование не поможет
Bogdan
так же ещё палки в колеса ставит win api можно было бы хранить в коллекции но win api если ты создаешь через проводник сначало создаст newdocumentfile а потом если ты задашь ему имя то это уже будет переименование
Bogdan
и разве что костылем доставать
Bogdan
и проблема ещё в том что файл не 1, а их 10+
Andrii
самому контролировать win api и самому прописывать события и инвокать их
Зато у тебя полный контроль, и там всего то открыть файл, прочитать, записать, закрыть...
Bogdan
это надо лезть в WIN32 и Unsafe код
Andrii
это тяжко
Я делал давно, относительно просто
Andrii
https://github.com/bobvanderlinden/sharpfilesystem Вот чисто на C#
Andrii
public interface IFileSystem : IDisposable { ICollection<FileSystemPath> GetEntities(FileSystemPath path); bool Exists(FileSystemPath path); Stream CreateFile(FileSystemPath path); Stream OpenFile(FileSystemPath path, FileAccess access); void CreateDirectory(FileSystemPath path); void Delete(FileSystemPath path); }
Andrii
Всего-то реализовать
Mikoratanakaki
Тогда надо отбирать нужные строки через регулярные выражения или через contains, можешь мне задачу в лс скинуть?
Mikoratanakaki
Mikoratanakaki
Подождать пока все загрузится ждать не вариант судя по всему?
Bogdan
Всего-то реализовать
по сути это будет просто обертка для FS Windows просто с дополнительным функционалом?
Andrii
Это будет твоя система, которая замаунчена в какую-то заданую папку
Andrii
И ты будешь трекать каждый записанный байт туда
Bogdan
может на досуге когда-то сделаю но этому заданию не надо своя ФС
Andrii
Тогда твои вопросы из серии «Исхитрися мне добыть, то, чего не может быть». Или плац ломом заметать. Как-то так это выглядит.
Nick 🇺🇸
https://www.instagram.com/reel/CZ4M0lQDUOV/?utm_medium=copy_link Тем временем Настя,которой лень
Andrii
я не хочу сейчас заморачиваться над собственной ФС должен быть способ проще
Что может быть проще :) Как раз достаточно универсальный обкатанный путь. А ты хочешь чтобы было реализовано API на твоё достаочно странное требование
Bogdan
они могут быть в любой части файлового хранилища
Bogdan
программа умеет доставать их из любой задницы
Andrii
Знаешь сколько всяких разных хотелок может быть у пользователям...
Bogdan
это не моя хотелка, это ТЗ
Andrii
они могут быть в любой части файлового хранилища
Ну... очень непонятно откуда такое возникает.
Andrii
это не моя хотелка, это ТЗ
Вот оно какое-то неадекватное
Bogdan
пользователь задает любую папку или файл какие захочет , оно отслеживается через встроенные события файловой системы но должно выводиться не только время последнего изменения но и время предыдущего
Bogdan
так в ТЗ написано
Bogdan
даже если файл ранее не отслеживался
Bogdan
оно должно откуда-то достать предыдущую дату
Andrii
пользователь задает любую папку или файл какие захочет , оно отслеживается через встроенные события файловой системы но должно выводиться не только время последнего изменения но и время предыдущего
Если предыдущее было до начало отслеживания, то ничего сделать низя. Такое ощущение, что либо ТЗ создавалось менеджером, который без руля что возможно, а что нет. Либо просто задача не связана никак с реальными, просто задают чтобы тебя занять
Bogdan
вот в этом вся проблема
Bogdan
я делал через костыли но я хранил только дату после первого изменения а до этого из файловой системы хрен достанешь
Andrii
https://velociraptor.velocidex.com/the-windows-usn-journal-f0c55c9010e
Andrii
Можешь сюда глянуть ещё. Все эти требования они для меня мало вяжутся с запросами конкретного пользователя
Bogdan
даты не должны совпадать
Алексей
Дык нельзя же по ТЗ
Почему нельзя. Ведь не понятно Когда было последнее изменение
Andrii
Почему нельзя. Ведь не понятно Когда было последнее изменение
Просто надо дату последнего изменния и дату предпоследнего изменения, и они не должны совпадать. Зачем не знаю, но такое ТЗ. А последнее как раз LastModified оно есть.
Bogdan
да current date просто не канает должно быть previous date и current date
Bogdan
это как в гите только проблема в том что файлы исторически не хранятся
Bogdan
то-есть нет никаких бэкапов
Mikoratanakaki
While (scanner.hasnextline) Можно использовать и строки всей странички записать в стрингбилдер, перевести в обычный стринг и искать нужные словам
Andrii
Но ведь такая инфа даже в линухах не хранится насколько я помню
Нет, не хранится. Обычное решение — натягивать свою FS. Ну в принципе можно логи FS парсить, но тут от FS зависит. И в логи не бесконечные.
Bogdan
а нет аналогия с гитом не годится
Bogdan
в гите в комитах бэкапы же , а в выводе только ласт апдейт
Иван
Может тебе гит прикрутить к своей программе и в нем делать авто коммиты, заодно изменения от него узнавать Так ты уберешь зависимость от ОС
Алексей
Нет, не хранится. Обычное решение — натягивать свою FS. Ну в принципе можно логи FS парсить, но тут от FS зависит. И в логи не бесконечные.
Но последнюю дату же система даёт. Хотя например винда даёт не дату создания и изменения а дату установки системы на комп
Bogdan
нельзя использовать сторонние ресурсы
Иван
Так у него же код открытый
Bogdan
и?
Bogdan
это не делает его не сторонним ресурсом
Bogdan
короче ладно у меня есть идея одного костыля может проканает