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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2015, 06:00   #1
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
Злость изменить дату создания файла

Как в Delphi изменить дату создания файла????
pavellyba вне форума Ответить с цитированием
Старый 08.02.2015, 08:34   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

FileDateTime или что то вроде этого
ZuBy вне форума Ответить с цитированием
Старый 08.02.2015, 09:16   #3
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

написал процедуру изменения файла, но все успешно не работает(
подскажите что не правильно:
Код:
procedure SetFileT(adr:string;d1,d2,d3: da);
var
DateTime: TDateTime ;
  H: Integer;
  F1,f2,f3: TFileTime;
  S: TSystemTime;
begin
  DateTime := StrToDateTime(d1[0]+'.'+d1[1]+'.'+d1[2]+' '+d1[3]+':'+d1[4]+':'+d1[5]);
    DateTimeToSystemTime(DateTime, S);
    SystemTimeToFileTime(S, F1);
    LocalFileTimeToFileTime(F1, F1);
    DateTime := StrToDateTime(d2[0]+'.'+d2[1]+'.'+d2[2]+' '+d2[3]+':'+d2[4]+':'+d2[5]);
    DateTimeToSystemTime(DateTime, S);
    SystemTimeToFileTime(S, F2);
    LocalFileTimeToFileTime(F2, F2);
      DateTime := StrToDateTime(d3[0]+'.'+d3[1]+'.'+d3[2]+' '+d3[3]+':'+d3[4]+':'+d3[5]);
    DateTimeToSystemTime(DateTime, S);
    SystemTimeToFileTime(S, F3);
    LocalFileTimeToFileTime(F3, F3);

  H := CreateFile(PChar(adr), $0100, 0, nil, 0,
    FILE_FLAG_BACKUP_SEMANTICS, 0);
  if H <> -1 then
  begin
    SetFileTime(H, @F1, @F2, @F3);
    CloseHandle(H);
  end;
end;
pavellyba вне форума Ответить с цитированием
Старый 08.02.2015, 09:29   #4
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

для DelphiXE7
Код:
uses IOUtils;
TFile.SetCreationTime();
ZuBy вне форума Ответить с цитированием
Старый 08.02.2015, 09:41   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых: Читай MSDN. У тебя лишние телодвижения.
Достаточно
Код:
procedure SetFileT(adr:string;d1,d2,d3: da);
var
DateTime: TDateTime ;
  H: Integer;
  F1,f2,f3: TFileTime;
  S: TSystemTime;
begin
  DateTime := StrToDateTime(d1[0]+'.'+d1[1]+'.'+d1[2]+' '+d1[3]+':'+d1[4]+':'+d1[5]);
    DateTimeToSystemTime(DateTime, S);
    SystemTimeToFileTime(S, F1);
    LocalFileTimeToFileTime(F1, F1);

  H := CreateFile(PChar(adr), $0100, 0, nil, 0,
    FILE_FLAG_BACKUP_SEMANTICS, 0);
  if H <> -1 then
  begin
    SetFileTime(H, @F1, nil, nil);
    CloseHandle(H);
  end;
end;
Во-вторых что значит "успешно не работает"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.02.2015, 16:54   #6
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

Дата файла не меняется, остается дата создания и изменения исходной
Я копирую файл при помощи функции CopyFile.
Пытаюсь изменить дату при помощи моей функции.
В итогов файле смотрю свойства файла, они остаются не измены.
Время создания и редактирования, это время копирования файла, а не то что нужно

Последний раз редактировалось pavellyba; 08.02.2015 в 17:15.
pavellyba вне форума Ответить с цитированием
Старый 08.02.2015, 17:20   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

CreateFile HANDLE точно возвращает или -1?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.02.2015, 18:35   #8
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

Возвращает! Что делать?! Может проблема в том, что я пишу в Лазарусе?

Дописал условие, что если -1, то выдавать сообщение.
pavellyba вне форума Ответить с цитированием
Старый 08.02.2015, 18:40   #9
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
Что делать?!
ошибки читать, и выводы делать
lomastr_ вне форума Ответить с цитированием
Старый 08.02.2015, 19:44   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что делать?
Анализировать что SetFileTime() вернет. Потом получить код ошибки с помошью GetLAstError() и текст с помошью SysErrorMessage() или сразу текст с помошью RaiseLastOsError()
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить дату создания файла? ололошенько Софт 16 09.01.2022 13:10
Как узнать дату создания файла ZelenuiBeret Помощь студентам 3 29.03.2013 09:12
как узнать дату создания файла green-shrek Помощь студентам 5 25.02.2010 17:33
Help! Как изменить дату создания... Bigi Microsoft Office Excel 1 01.05.2008 14:59
Как установить дату создания файла vitalik007 Общие вопросы Delphi 1 11.12.2007 20:15