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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2017, 13:18   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию Получить дату создания файла в формате TDateTime

Думал, банальный вопрос... Да фиг там. Искал-искал по интернету, прямого ответа так и не нашёл, кривые совместить не удалось...
Может кто-нибудь сказать как получить в формате TDateTime дату создания файла?
Ну или что здесь поменять, чтоб работало?..
Код:
function GetFileCreateDateTime(FileName: string): TDateTime;
var
  T1, T2, T3 : TFileTime;
  h:THandle;
  F: TFileTime;
  S: TSystemTime;
  DateTime: TDateTime ;
begin
  h:=FileOpen(FileName, fmOpenReadWrite);
  GetFileTime(h, @T1, @T2, @T3);
  FileTimeToLocalFileTime(T1, F);
  FileTimeToSystemTime(F, S);
  DateTime:=SystemTimeToDateTime(S);
  Result := DateTime;
  FileClose(h);
end;
Ship_1 вне форума Ответить с цитированием
Старый 13.04.2017, 13:47   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.Button3Click(Sender: TObject);
var SearchRec: TSearchRec;
    LocalTime: TFileTime;
    DOSFileTime: DWORD;
begin
  if FindFirst('e:\прогрессбар.txt',faAnyFile,SearchRec)=0 then begin
    FileTimeToLocalFileTime(SearchRec.FindData.ftCreationTime,LocalTime);
    FileTimeToDosDateTime(LocalTime,LongRec(DOSFileTime).Hi,LongRec(DOSFileTime).Lo);
    Edit2.Text:=DateTimeToStr(FileDateToDateTime(DOSFileTime));
    FindClose(SearchRec);
  END;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 13.04.2017 в 13:50.
Аватар вне форума Ответить с цитированием
Старый 13.04.2017, 14:03   #3
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Возможно, я находил такой вариант. А, может, и несколько раз
SearchRec.FindData.ftCreationTime - это он выдирает время создания из результата поиска. Так? Но у меня не поиск. У меня просто файл. Точнее, строка с его путём и названием.
Ship_1 вне форума Ответить с цитированием
Старый 13.04.2017, 14:09   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

00.JPG
контрольный файл

01.JPG
и результаты работы (Delphi7 + WinXP )

???
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.04.2017, 14:13   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

У меня тоже просто файл. И это время его создания и хранится в файловой системе. Время последнего изменения можно проще
Код:
  i:=FileAge('e:\прогрессбар.txt');
  if i<>-1 then Edit1.Text:=DateTimeToStr(FileDateToDateTime(i));
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.04.2017, 14:40   #6
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

evg_mХм... А у меня, почему-то, всё время для разных файлов выходит одна и та же дата 21.07.1660 21:17:56:122. D7, Win7, хотя не думаю, что дело в этом...
Аватар Действительно... Тоже просто файл... Очень необычно как-то видеть FindFirst вне цикла поиска файлов, поэтому не обращал внимания на точное указание файла. Спасибо! Так получилось
FileAge тоже находил. В части форумов это ошибочно фигурирует как способ определения времени создания файла.
Ship_1 вне форума Ответить с цитированием
Старый 13.04.2017, 14:49   #7
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

http://stackoverflow.com/a/9209814
Filka вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить дату создания файла? ололошенько Софт 16 09.01.2022 13:10
изменить дату создания файла pavellyba Общие вопросы Delphi 10 08.02.2015 20:30
Как узнать дату создания файла ZelenuiBeret Помощь студентам 3 29.03.2013 09:12
Получить дату в формате dd.mm.yyyy ArtGrek Общие вопросы Delphi 2 28.04.2011 10:55
как узнать дату создания файла green-shrek Помощь студентам 5 25.02.2010 17:33