Micheus Postado Junho 27, 2007 Denunciar Share Postado Junho 27, 2007 A função faz uso da função SetFileTime da API Win32, a qual permite alterar as informações em questão.function SetFileDateTime(FileName: string; CreateTime, ModifyTime, AcessTime: TDateTime): Boolean; function ConvertToFileTime(DateTime :TDateTime) :PFileTime; var FileTime :TFileTime; LFT: TFileTime; LST: TSystemTime; begin Result := nil; if DateTime > 0 then begin DecodeDate(DateTime, LST.wYear, LST.wMonth, LST.wDay); DecodeTime(DateTime, LST.wHour, LST.wMinute, LST.wSecond, LST.wMilliSeconds); if SystemTimeToFileTime(LST, LFT) then if LocalFileTimeToFileTime(LFT, FileTime) then begin New(Result); Result^ := FileTime; end; end; end; var FileHandle: Integer; ftCreateTime, ftModifyTime, ftAcessTime: PFileTime; begin Result := False; try ftCreateTime := ConvertToFileTime(CreateTime); ftModifyTime := ConvertToFileTime(ModifyTime); ftAcessTime := ConvertToFileTime(AcessTime); try FileHandle := FileOpen(FileName, fmOpenReadWrite or fmShareExclusive); Result := SetFileTime(FileHandle, ftCreateTime, ftAcessTime, ftModifyTime); finally FileClose(FileHandle); end; finally Dispose(ftCreateTime); Dispose(ftAcessTime); Dispose(ftModifyTime); end; end;Como utilizar1) Alterando todas as data/hora para a atual:SetFileDateTime(<nome do arquivo>, Now, Now, Now);2) Alterando apenas a data/hora de criação:SetFileDateTime(<nome do arquivo>, Now, 0, 0);3) Alterando apenas a data/hora de acesso e modificação:SetFileDateTime(<nome do arquivo>, 0, StrToDate('20/01/2005'), StrToDate('18/01/2004')); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Brian Postado Fevereiro 3, 2008 Denunciar Share Postado Fevereiro 3, 2008 olha sou novato não entendi muito bemExemplo: se baixo 1 programa com tempo de expiração posso usar isso para alterar a data de expiração dele ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 4, 2008 Autor Denunciar Share Postado Fevereiro 4, 2008 Exemplo: se baixo 1 programa com tempo de expiração posso usar isso para alterar a data de expiração dele ?Não necessariamente. Depende de como foi programado o esquema de expiração pela data. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Micheus
A função faz uso da função SetFileTime da API Win32, a qual permite alterar as informações em questão.
Como utilizar
1) Alterando todas as data/hora para a atual:
SetFileDateTime(<nome do arquivo>, Now, Now, Now);
2) Alterando apenas a data/hora de criação:
SetFileDateTime(<nome do arquivo>, Now, 0, 0);
3) Alterando apenas a data/hora de acesso e modificação:
SetFileDateTime(<nome do arquivo>, 0, StrToDate('20/01/2005'), StrToDate('18/01/2004'));
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.