Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2011
lduron lduron is offline
Miembro
 
Registrado: jun 2006
Posts: 30
Poder: 0
lduron Va por buen camino
Modificar las fechas de creación y modifiación de un archivo

Hola amigos!

Me podrían ayudar con este código?

El objetivo es que debe de cambiar la fecha de creación y la fecha de modificación de un archivo cualquiera.

Este código solo me cambia la fecha de modificación, pero la fecha de creación no... como lo puedo resolver?

Código Delphi [-]
function SetDateToFile(const FileName: string; Value: TDateTime): Boolean;
var
  hFile: THandle;
begin
  Result := False;
  try
    hFile := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
//    hFile := FileOpen(FileName, fmOpenReadWrite or fmShareDenyWrite);
    if (hFile > 0) then
      Result := (FileSetDate(hFile, DateTimeToFileDate(Value)) = 0)
  finally
    FileClose(hFile);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
SetDateToFile('C:\CambiarFecha\prueba.txt', StrToDateTime('06/07/2011 15:30:11'));
end;

Gracias de antemano.

Saludos!

Última edición por Casimiro Notevi fecha: 22-06-2011 a las 09:40:31.
Responder Con Cita
  #2  
Antiguo 22-06-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aqui hay un ejemplo
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 22-06-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Hola!

Utiliza la función SetFileTime de la API de windows para lograr lo que necesitas.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 22-06-2011
lduron lduron is offline
Miembro
 
Registrado: jun 2006
Posts: 30
Poder: 0
lduron Va por buen camino
Hola Caral & Chris!

Muchas gracias por responder.

Caral el código que me pusiste solo es para cambiar la fecha de modificación del archivo. Como puedo cambiar la fecha de creación y la fecha de Acceso?

Chris soy novato en esto, me puedes echar la mano con un ejemplo?

Nuevamente les agradesco a ambos su ayuda.

Saludos!
Responder Con Cita
  #5  
Antiguo 22-06-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por lduron Ver Mensaje
Chris soy novato en esto, me puedes echar la mano con un ejemplo?
Puedes probar a utilizar esta función que he encontrado por ahí:
Código Delphi [-]
function NT_SetDateTime(FileName: string; dtCreation, dtLastAccessTime, dtLastWriteTime: TDateTime): Boolean;
// by Nicholas Robinson
var
  hDir: THandle;
  ftCreation: TFiletime;
  ftLastAccessTime: TFiletime;
  ftLastWriteTime: TFiletime;

  function DTtoFT(dt: TDateTime): TFiletime;
  var
    dwft: DWORD;
    ft: TFiletime;
  begin
    dwft := DateTimeToFileDate(dt);
    DosDateTimeToFileTime(LongRec(dwft).Hi, LongRec(dwft).Lo, ft);
    LocalFileTimeToFileTime(ft, Result);
  end;

begin
  hDir := CreateFile(PChar(FileName),
                     GENERIC_READ or GENERIC_WRITE,
                     0,
                     nil,
                     OPEN_EXISTING,
                     FILE_FLAG_BACKUP_SEMANTICS,
                     0);
  if hDir <> INVALID_HANDLE_VALUE then 
  begin
    try
      ftCreation       := DTtoFT(dtCreation);
      ftLastAccessTime := DTtoFT(dtLastAccessTime);
      ftLastWriteTime  := DTtoFT(dtLastWriteTime);
      Result := SetFileTime(hDir, @ftCreation, @ftLastAccessTime, @ftLastWriteTime);
    finally
      CloseHandle(hDir);
    end;
  end
  else
    Result := False;
end;
Fuente original: Torry Delphi Pages.

Una vez escribí yo mismo una rutina para hacer lo que buscas. Lamentablemente creo que la he perdido. Por eso, mejor tomo el atrevimiento de proporcionarte un código escrito por Nicholas Robinson que acabo de encontrar en la red.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 06-07-2011
lduron lduron is offline
Miembro
 
Registrado: jun 2006
Posts: 30
Poder: 0
lduron Va por buen camino
http://www.clubdelphi.com/foros/imag...ine=1201024417Chris
http://www.clubdelphi.com/foros/imag...ine=1201024417Chris
Chris muchas gracias, funcionó a la perfección (100%).

Nuevamente muchas gracias por tú ayuda. Y a todos los que se tomaron un tiempo para leer y aportar sus conocimentos con esta pregunta.

Saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hora de creación de archivo Belaix Varios 2 15-11-2008 21:13:53
Cambiando la fecha de creacion de un archivo cascarrabias Varios 2 10-03-2008 18:24:48
Modificar por diferencia de fechas chipsoni SQL 4 19-12-2006 19:09:16
modifiacion de datos con un TQuery Sg2000 Tablas planas 2 05-05-2005 03:14:08
Creacion de un archivo HTML... JorgeBec Varios 2 30-07-2004 13:15:51


La franja horaria es GMT +2. Ahora son las 20:34:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi