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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 16:34   #1
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
Вопрос Дата и время изменения файла

Всем здрасти!
У меня возникла проблемка:
Необходимо програмно получать из файла дату и время его последнего изменения и сравнивать с датой и временем предыдущего изменения.
Сложность как раз в получении даты и времени изменения...
Помогите пожалуйста! ))
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 02.06.2009, 16:45   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот получение даты изменения файла:
Код:
function GetFileDate(FileName: string): string;
var
  FHandle: Integer;
begin
  FHandle := FileOpen(FileName, 0);
  try
    Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
  finally
    FileClose(FHandle);
  end;
end;
Вот дата и время создания файла:
Код:
function GetFileDateTime(FileName: string): TDateTime;
var
  intFileAge: LongInt;
begin
  intFileAge := FileAge(FileName);
  if intFileAge = -1 then
    Result := 0
  else
    Result := FileDateToDateTime(intFileAge)
end;
Выводится в TDateTime, вот пример присваивания Label'у
Код:
 Label1.Caption := DateTimeToStr(GetFileDateTime('D:\1.txt'));
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 02.06.2009, 19:12   #3
Demien
Форумчанин
 
Аватар для Demien
 
Регистрация: 01.08.2007
Сообщений: 222
По умолчанию

Спасибо! Разобрался!!!
А главное - вроде работает! )))
Жить тоже вредно, от этого умирают!!!
Demien вне форума Ответить с цитированием
Старый 24.11.2009, 12:20   #4
Nemez
Пользователь
 
Аватар для Nemez
 
Регистрация: 11.02.2008
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Neeter Посмотреть сообщение
Вот дата и время создания файла:
Код:
function GetFileDateTime(FileName: string): TDateTime;
var
  intFileAge: LongInt;
begin
  intFileAge := FileAge(FileName);
  if intFileAge = -1 then
    Result := 0
  else
    Result := FileDateToDateTime(intFileAge)
end;
Выводится в TDateTime, вот пример присваивания Label'у
Код:
 Label1.Caption := DateTimeToStr(GetFileDateTime('D:\1.txt'));
Кто пробовал этот код, как не крути показывает дату и время изменения файла, но ни как не дату и время создания. Может кто подскажет другой способ получить ДАТУ СОЗДАНИЯ файла. Перерыл весь инет прилогают примеры кодов, но и они у меня показывают дату изменения. Прям не знаю что и делать. А надо именно ДАТУ СОЗДАНИЯ.
Nemez вне форума Ответить с цитированием
Старый 24.11.2009, 12:25   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

может и не вкурил , но не думаю, что это возможно в принципе, т.к. теги одни и те же


upd
-------

Цитата:
Serge_Bliznykov
нет. это РАЗНЫЕ "тэги"!
пример в студию, самому интересно... щас ищу



upd-2
-------

нашел тоже, сенкс и + to Serge_Bliznykov
Код:
procedure GetFileInfo(const FileName: String; out CreationTime,
  ModificationTime: TDateTime);
var
  FileAttributeData: TWin32FileAttributeData;
  SystemTime: TSystemTime;
begin
  ZeroMemory(@FileAttributeData, SizeOf(TWin32FileAttributeData));
  GetFileAttributesEx(PAnsiChar(FileName), GetFileExInfoStandard, @FileAttributeData);
  FileTimeToLocalFileTime(FileAttributeData.ftCreationTime, FileAttributeData.ftCreationTime);
  FileTimeToSystemTime(FileAttributeData.ftCreationTime, SystemTime);
  CreationTime := SystemTimeToDateTime(SystemTime);
  FileTimeToLocalFileTime(FileAttributeData.ftLastWriteTime, FileAttributeData.ftLastWriteTime);
  FileTimeToSystemTime(FileAttributeData.ftLastWriteTime, SystemTime);
  ModificationTime := SystemTimeToDateTime(SystemTime);
end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 24.11.2009 в 12:55. Причина: возможно как-то на уровне файловых потоков ntfs такая информация имеется, нужно порыть...
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 12:36   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет. это РАЗНЫЕ "тэги"!

во вложении рабочий код. консольная программка.
Отображает данные по файлу, имя которого ей передано в качестве командной строки.

писал давно. как раз изучал данный вопрос.
Поэтому написано сумбурно.
но код - РАБОЧИЙ!


____________________
ещё добавлю. есть такой супер пакет JEDI!
и там, в модуле JclFileUtils,
среди множества полезных функций, есть и такие, уже готовые функции:
GetFileLastWrite(...)
GetFileLastAccess(...)
GetFileCreation(...)
Вложения
Тип файла: rar getftime0.rar (1.3 Кб, 217 просмотров)

Последний раз редактировалось Serge_Bliznykov; 24.11.2009 в 12:45.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дата последнего изменения файла GrindeX Паскаль, Turbo Pascal, PascalABC.NET 2 26.05.2009 17:22
Дата и время открытия файла drakosha163 Помощь студентам 0 12.04.2009 19:20
Дата Изменения стольбца Petra Microsoft Office Excel 2 05.03.2009 18:52
время и дата изменения файла dimonbest Общие вопросы Delphi 3 12.03.2008 06:51