Quiero obtener un archivo de estos atributos como valores enteros.¿Cómo obtener las fechas de creación/última modificación de un archivo en Delphi?
Respuesta
Los delfines tienden a preferir el enfoque FindFirst (la estructura SearchRec tiene algunos de ellos), pero sugeriría la función WinForm API GetFileAttributesEx.
Puede llamar a la función winapi GetFileInformationByHandle. Aparentemente JCL tiene una función GetFileLastWrite también se podría utilizar
Trate
function FileAge(const FileName: string; out FileDateTime: TDateTime): Boolean;
De SysUtils.
Obsoleto al momento de este comentario. –
'FileAge()' obtiene la fecha CREAR del archivo, no la fecha ÚLTIMA MODIFICACIÓN. –
@JerryGagnon - No, utiliza '_WIN32_FILE_ATTRIBUTE_DATA.ftLastWriteTime' –
Desde la biblioteca DSiWin32 freeware:
function DSiFileTimeToDateTime(fileTime: TFileTime; var dateTime: TDateTime): boolean;
var
sysTime: TSystemTime;
begin
Result := FileTimeToSystemTime(fileTime, sysTime);
if Result then
dateTime := SystemTimeToDateTime(sysTime);
end; { DSiFileTimeToDateTime }
function DSiGetFileTimes(const fileName: string; var creationTime, lastAccessTime,
lastModificationTime: TDateTime): boolean;
var
fileHandle : cardinal;
fsCreationTime : TFileTime;
fsLastAccessTime : TFileTime;
fsLastModificationTime: TFileTime;
begin
Result := false;
fileHandle := CreateFile(PChar(fileName), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if fileHandle <> INVALID_HANDLE_VALUE then try
Result :=
GetFileTime(fileHandle, @fsCreationTime, @fsLastAccessTime,
@fsLastModificationTime) and
DSiFileTimeToDateTime(fsCreationTime, creationTime) and
DSiFileTimeToDateTime(fsLastAccessTime, lastAccessTime) and
DSiFileTimeToDateTime(fsLastModificationTime, lastModificationTime);
finally
CloseHandle(fileHandle);
end;
end; { DSiGetFileTimes }
Esto debería funcionar, y es nativa de código de Delphi.
function GetFileModDate(filename : string) : integer;
var
F : TSearchRec;
begin
FindFirst(filename,faAnyFile,F);
Result := F.Time;
//if you wanted a TDateTime, change the return type and use this line:
//Result := FileDateToDatetime(F.Time);
FindClose(F);
end;
function GetFileModDate(filename : string) : TDateTime;
var
F : TSearchRec;
begin
FindFirst(filename,faAnyFile,F);
Result := F.TimeStamp;
//if you really wanted an Int, change the return type and use this line:
//Result := F.Time;
FindClose(F);
end;
F.Time ya ha quedado obsoleto, archivo de ayuda Uso dice F.TimeStamp.
Solo para actualizar esto debido a las versiones posteriores de Delphi
System.IOUtils tiene un registro TFile con varias funciones para obtener la antigüedad del archivo, p. GetCreationTime, GetLastAccessTime, GetLastWriteTime
- 1. Obtener la fecha de modificación del archivo en VB.NET
- 2. Obtener la última fecha de modificación de un archivo remoto
- 3. Modificación de un archivo jar
- 4. ¿Cómo escribo las fechas de modificación de archivos programáticamente en POSIX?
- 5. Cómo obtener la fecha de modificación del archivo en UTC desde Python
- 6. ¿Cómo puedo obtener las fechas de esta semana en Perl?
- 7. URL Modificación en un servidor Resto en Delphi
- 8. Modificación de archivo atómico
- 9. Conseguir un archivo de fecha de última modificación
- 10. Obtener la última fecha de modificación de un archivo en VB6
- 11. jQuery selector de fechas - las opciones de modificación de los datos de atributos
- 12. ¿Cómo obtengo la fecha de modificación del archivo en C#?
- 13. Obtener archivo Última modificación de tiempo y comparar
- 14. Obtener la última fecha de modificación de un archivo en C
- 15. Descarga de un archivo en Delphi
- 16. ¿Cómo obtener la última fecha de modificación del archivo en la línea de comandos de Windows?
- 17. quería obtener todas las fechas en el resultado de mysql
- 18. ¿Cómo reproducir un archivo wav en Delphi?
- 19. ¿Cómo obtener todas las fechas (mes, día y año) entre dos fechas en python?
- 20. Eliminar las fechas contenidas en otras fechas?
- 21. cómo crear un archivo xml en delphi
- 22. Cómo depurar un archivo DLL en Delphi
- 23. ¿Cómo obtener las firmas de métodos de un archivo jar?
- 24. Modificación de un archivo de texto en un archivo ZIP en Java
- 25. Modificación de las propiedades del documento PDF
- 26. ¿Cómo obtener las fechas de lanzamiento de DVD de las películas programáticamente?
- 27. ¿Cómo obtener un valor aleatorio de 64 bits en Delphi?
- 28. ¿Cómo puedo obtener todas las imágenes de un archivo qrc?
- 29. ¿Cómo puedo obtener las capas de un archivo PSD?
- 30. ¿Cómo formato las fechas en Perl?
¿Por qué un número entero, qué pasa con TDateTime? –