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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2011, 23:10   #1
TrapQ
Пользователь
 
Аватар для TrapQ
 
Регистрация: 21.11.2010
Сообщений: 16
Сообщение Создан, изменён, открыт.

Ниже приведён пример как посмотреть и изменить дату и время последнего изменения файла, но как изменить дату создания и последнего открытия файла я так и не нашёл, даже не уверен что такие команды вообще существуют.


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  fileName    : string;
  fileDate    : Integer;
  newDateTime : TDateTime;

begin

  fileName := 'c:\ulibka.jpg';
  fileDate := FileAge(fileName);

  // Мы получали возраста файла?
  if fileDate > -1 then
  begin
    ShowMessage(fileName+' дата последнего изменения = '+
                DateTimeToStr(FileDateToDateTime(fileDate)));

    // Now change the last modified date
    newDateTime := StrToDateTime('15.02.2000 12:15:20');{date};
    FileSetDate(fileName, DateTimeToFileDate(newDateTime));
  end;

  // Мы обновили дату последнего изменения файла?
  fileDate := FileAge(fileName);
  if fileDate > -1 then
    ShowMessage(fileName+' дата последнего изменения = '+
                DateTimeToStr(FileDateToDateTime(fileDate)));
end;
Как два байта переслать...
TrapQ вне форума Ответить с цитированием
Старый 16.02.2011, 23:14   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Код:
BOOL WINAPI SetFileTime(
  __in      HANDLE hFile,
  __in_opt  const FILETIME *lpCreationTime,
  __in_opt  const FILETIME *lpLastAccessTime,
  __in_opt  const FILETIME *lpLastWriteTime
);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 16.02.2011, 23:30   #3
TrapQ
Пользователь
 
Аватар для TrapQ
 
Регистрация: 21.11.2010
Сообщений: 16
По умолчанию

Интересно, кроме меня ещё кто нибудь НЕ понял что написано сверху?
Как два байта переслать...
TrapQ вне форума Ответить с цитированием
Старый 17.02.2011, 00:26   #4
TrapQ
Пользователь
 
Аватар для TrapQ
 
Регистрация: 21.11.2010
Сообщений: 16
По умолчанию

Протестировал, работает, изменяет все 3 параметра. Но на мой взгляд получилось довольно много кода, может можно всё это попроще записать.

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
DateTime: TDateTime ;
Dir: string;
  H: Integer;
  F: TFileTime;
  S: TSystemTime;
begin
dir:= 'c:\ulibka.jpg';
DateTime := StrToDateTime('15.02.2000 12:15:20');
  H := CreateFile(PChar(Dir), $0100, 0, nil, OPEN_EXISTING,
    FILE_FLAG_BACKUP_SEMANTICS, 0);
  if H <> -1 then
  begin
    DateTimeToSystemTime(DateTime, S);
    SystemTimeToFileTime(S, F);
    LocalFileTimeToFileTime(F, F);
    SetFileTime(H, @F, @F, @F);
    CloseHandle(H);
  end
end;
Как два байта переслать...

Последний раз редактировалось TrapQ; 17.02.2011 в 00:55.
TrapQ вне форума Ответить с цитированием
Старый 18.02.2011, 20:35   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

короче врятли.
если какое-то время не надо менять, то на соответствующем параметре пишите nil
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка открыт ли файл в сети Klim Bassenger Microsoft Office Excel 4 29.09.2010 20:50
Узнать, где открыт файл (Delphi) Quadro_O Помощь студентам 11 06.05.2010 12:39
Определить, создан ли класс. Alex Cones Общие вопросы Delphi 4 14.01.2010 18:12
Открыт ли лоток CD-привода, Delphi kerevra Общие вопросы Delphi 3 11.12.2009 13:42
Как узнать, открыт ли файл? #32 Microsoft Office Excel 5 30.10.2009 12:04