Название: Как в Qt задавать атрибуты для файла? Отправлено: billy4685 от Октября 11, 2016, 16:22 Добрый день! На днях у меня появилась необходимость задать для создаваемого файла атрибут "Дату последнего изменения файла".
Но пока так и нечего не нашел по этому поводу. Посмотреть эту дату можно через QFileInfo(file_path).lastModified(). А вот как задать ее в атрибуты файла не знаю? Может кто чем-то подскажет. Буду рад любой полезной информации. Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: ksk- от Октября 11, 2016, 18:42 Скорее всего, для этого придётся написать платформозависимый код.
Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: billy4685 от Октября 13, 2016, 09:10 Скорее всего, для этого придётся написать платформозависимый код. Благодарю за ответ. Буду копать в этом направлении. Для UNIX систем есть функция untime. Сейчас почитаю может она мне поможет. Ну и загляну в WinAPI. Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: Day от Октября 13, 2016, 12:04 В Unix -системах есть еще утилита touch. Одноименная утилита есть и в ДОСе. Например, входящая в комплект DC 2.0. Кажется, с виндовскими файлами тоже работает, если они короче 8-ми символов и на латинице
Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: billy4685 от Октября 19, 2016, 09:47 Спасибо всем за ответы. Для QNX получилось изменить дату создания и последней модификации файла через utime.
Теперь бы еще понять как в Windows это реализовать. Знаю что нужно использовать WinAPI. Но вот метода подобного utime не нашел пока. Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: Zerkin от Октября 19, 2016, 12:14 вроде, то, что вам нужно в винапи?
Код
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms724933(v=vs.85).aspx Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: billy4685 от Ноября 30, 2016, 09:08 Благодарю за ответ.
Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: DarkHobbit от Февраля 22, 2021, 09:34 Касательно даты-времени, начиная с Qt 5.10 (да, на момент создания темы этого ещё не было) появился метод QFileDevice::setFileTime().
Правда, у меня в Qt 5.15.2 он ведёт себя как-то странно: FileModificationTime устанавливается только для двоичных файлов, для текстовых не хочет. Но я ещё вопрос до конца не исследовал, исследую - обязательно отпишусь, на каких системах это проявляется. (Но если кто может подтвердить эффект, пишите.) Название: Re: Как в Qt задавать атрибуты для файла? Отправлено: DarkHobbit от Марта 31, 2021, 22:29 Разобрался.
Если вы сначала пишете в файл (QIODevice::WriteOnly) и хотите тут же скорректировать его дату, не закрывая, результат может оказаться непредсказуемым: на каких-то системах работает, на каких-то нет. Если же закрыть записанный файл, тут же его открыть в режиме QIODevice::Append и только тогда вызвать Код: f.setFileTime(dateTime, QFileDevice::FileBirthTime); Выдохнул. |