Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Дата создания файла из С++ программы  (Прочитано 2439 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Дата создания файла из С++ программы
« : 26 Сентября 2010, 23:41:14 »
Всем доброго времени суток!

Необходимо узнать дату создания файла из С++ программы использующей wxWidgets.
Прошелся немного по поиску здесь на форуме, нашел что-то похожее. Проблема решалась с помощью функции stat().

В моем случае программа расчитана на Windows и Ubuntu, по-этому хотелось бы узнать, есть ли какой-нибудь платформонезависимый аналог? (возможно в wxWidgets)
Или хотя бы что-то похожее на stat() для Windows?
« Последнее редактирование: 26 Сентября 2010, 23:45:14 от RaMoN »

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #1 : 27 Сентября 2010, 00:06:15 »
Насколько мне известно, не все файловые системы поддерживают метки создания файлов, ext3 вроде не поддерживают.
« Последнее редактирование: 27 Сентября 2010, 00:13:45 от hippi90 »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #2 : 27 Сентября 2010, 08:42:05 »
Команда touch позволяет изменять тайм-штамп для конкретного файла (проще говоря, дату создания). И она работает везде в Linux.

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #3 : 27 Сентября 2010, 20:26:10 »
Насколько мне известно, не все файловые системы поддерживают метки создания файлов, ext3 вроде не поддерживают.

Да, попробовал поработать со stat(), но что-то ничего вразумительного не вышло  :( То есть в Linuxе вообще нет возможности увидеть дату создания файла? :(

А что на счет той же задачи, но под Windows?

Команда touch позволяет изменять тайм-штамп для конкретного файла (проще говоря, дату создания). И она работает везде в Linux.
Цитировать
DESCRIPTION
       Update  the  access  and modification times of each FILE to the current
       time...
- по-моему про создание тут ни слова. Или может я чего не понимаю?

Lifewalker

  • Гость
Re: Дата создания файла из С++ программы
« Ответ #4 : 27 Сентября 2010, 20:52:12 »
То есть в Linuxе вообще нет возможности увидеть дату создания файла? :(

А файловые системы Linux вообще сохраняют сведения о дате создания файла? Дату редактирования и дату доступа (иногда) сохраняют. А вот создания - не помню.

Оффлайн little_bit

  • Новичок
  • *
  • Сообщений: 48
  • Duke Nukem must die !!!
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #5 : 27 Сентября 2010, 21:43:19 »
wxFileName::GetTimes
bool GetTimes(wxDateTime* dtAccess, wxDateTime* dtMod, wxDateTime* dtCreate) const
 Returns the last access, last modification and creation times.
The last access time is updated whenever the file is read or written (or executed in the case of Windows), last modification time is only changed when the file is written to. Finally, the creation time is indeed the time when the file was created under Windows and the inode change time under Unix (as it is impossible to retrieve the real file creation time there anyhow) which can also be changed by many operations after the file creation.

Не ?

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #6 : 27 Сентября 2010, 22:35:04 »
wxFileName::GetTimes
bool GetTimes(wxDateTime* dtAccess, wxDateTime* dtMod, wxDateTime* dtCreate) const

Для Windows, то, что нужно, спасибо!

Цитировать
the inode change time under Unix (as it is impossible to retrieve the real file creation time there anyhow) which can also be changed by many operations after the file creation
Жаль, что в Ubuntu дата создания не сохраняется:(


Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #7 : 28 Сентября 2010, 08:48:40 »
Наверное, правильнее дата последнего редактирования.
Что толку от даты создания, если после этого 100 раз этот файл был изменен.
И это уже не паровоз, а подводная лодка.
Последнее редактирование и можно считать датой создания, ведь до этого он был другим.
ЗЫ. Это уже философия, типа болтология, пошла. :idiot2:
Форма и содержание.
« Последнее редактирование: 28 Сентября 2010, 08:58:41 от alexander.pronin »

Оффлайн RaMoN

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: Дата создания файла из С++ программы
« Ответ #8 : 28 Сентября 2010, 18:14:43 »
Всем спасибо за помощь!
Вопрос решен.
(с помощью класса wxFileName, а для Linux альтернатива дате создания-дата модификации)

 

Страница сгенерирована за 0.054 секунд. Запросов: 26.