Añadida a la sección Descargas la aplicación AjpdSoft Modificar fechas de fichero: permite modificar las fechas y horas de modificación, creación y último acceso de un fichero. La aplicación permite drag and drop (arrastrar y soltar), es suficiente con arrastrar y soltar un fichero y mostrará la fecha actual de creación, de modificación y de último acceso y permitirá cambiarlas. Liberamos el código fuente – source code en Borland Delphi 6 100% Open Source.
- Características más importantes de AjpdSoft Modificar fechas de fichero.
- AjpdSoft Modificar fechas de fichero en funcionamiento.
- Instalación y configuración de AjpdSoft Modificar fechas de fichero.
- Datos técnicos de AjpdSoft Modificar fechas de fichero.
- A quién va dirigida AjpdSoft Modificar fechas de fichero.
- Anexo.
Características más importantes de AjpdSoft Modificar fechas de fichero
- Aplicación de muy sencillo manejo, muy fácil e intuitiva, todas las opciones están en una misma ventana.
- La aplicación ha sido desarrollada en el lenguaje de programación Borland Delphi 6.
- No necesita instalación, es suficiente con ejecutar el fichero cambiarFechaFichero.exe.
- Permite arrastrar y soltar (drag and drop) para seleccionar el fichero.
- Modifica la fecha de creación, de modificación y de último acceso.
- Muestra las fechas actuales de creación, de modificación y de último acceso de un fichero.
AjpdSoft Modificar fechas de fichero en funcionamiento
AjpdSoft Modificar fechas de fichero permite seleccionar un fichero para mostrar la fecha y hora de creación, de modificación y de último acceso. También permite modificarlas para que el usuario seleccione las que desee. La aplicación modificará dichas fechas para que queden guardadas en el fichero.
Para modificar la fecha de creación de un fichero, en primer lugar lo seleccionaremos pulsando el botón «…» o bien escribiendo la ruta y el nombre (o arrastrándolo y soltándolo en la aplicación):
Seleccionaremos el fichero a modificar la fecha de creación:
Marcaremos en «Fecha a modificar» la opción «Fecha de creación». En «Nueva fecha y hora» seleccionaremos la fecha y la hora que quedarán guardadas en el fichero como la fecha y la hora de modificación:
Pulsaremos «Aplicar fecha» para guardar los cambios en el fichero:
De la misma forma, podremos modificar la fecha y hora de modificación del fichero y la de último acceso. Aunque esta última fecha no quedará modificada, pues como fecha de último acceso quedará la del día y hora en que se modifique.
Instalación y configuración de AjpdSoft Modificar fechas de fichero
Podéis descargar el programa con el código fuente (freeware, gratuito) desde esta URL:
Para el correcto funcionamiento sólo es necesario el fichero cambiarFechaFichero.exe, el resto de ficheros corresponden al código fuente y no son necesarios para su ejecución.
La aplicación no necesita instalación de ningún tipo, el fichero cambiarFechaFichero.exe se puede ejecutar directamente.
Datos técnicos de AjpdSoft Modificar fechas de fichero
Esta aplicación ha sido desarrollada en el lenguaje de programación Borland Delphi 6.
Si eres desarrollador de software y te has registrado en nuestra web (si aún no te has registrado puedes hacerlo desde aquí gratuitamente) puedes descargar el código fuente 100% Open Source (completo y totalmente gratuito) en Borland (ahora Codegear) Delphi 6:
AjpdSoft Modificar fechas de fichero ha sido testada y funciona correctamente en equipos con sistemas operativos: Windows 98, Windows XP, Windows 2000 Server, Windows Server 2003, Windows Vista y Windows Seven (7).
A quién va dirigida AjpdSoft Modificar fechas de fichero
La aplicación va dirigida a administradores de sistemas y usuarios que deseen, por algún motivo, cambiar la fecha de un fichero (tanto la de creación como la de modificación).
También puede ser útil para estudiantes que tengan que realizar algún proyecto de ejemplo de modificación de datos de un fichero con Delphi.
Anexo
Unidad «UnidadMenuPrincipal.pas»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
unit UnidadMenuPrincipal; {$R WinXP.res} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DateUtils, Buttons, StdCtrls, ComCtrls, ExtCtrls, shellapi, ThemeMgr; type TformMenuPrincipal = class(TForm) opTipoFecha: TRadioGroup; GroupBox1: TGroupBox; txtFecha: TDateTimePicker; txtHora: TDateTimePicker; GroupBox2: TGroupBox; dlAbrir: TOpenDialog; bModificarFecha: TBitBtn; bSeleccionarFichero: TBitBtn; txtFichero: TEdit; lfCreacion: TLabel; lfModificacion: TLabel; lfUltimoAcceso: TLabel; LWEB: TLabel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Shape1: TShape; Shape2: TShape; Shape3: TShape; Shape4: TShape; Shape5: TShape; Shape6: TShape; StatusBar1: TStatusBar; ThemeManager1: TThemeManager; Label4: TLabel; Label5: TLabel; Label6: TLabel; Shape7: TShape; procedure bModificarFechaClick(Sender: TObject); procedure bSeleccionarFicheroClick(Sender: TObject); procedure obtenerDatosFichero; procedure LWEBClick(Sender: TObject); procedure FormCreate(Sender: TObject); //para arrastrar y soltar procedure SoltarFichero (var Msg: TWMDropFiles); message WM_DROPFILES; private { Déclarations privées } public { Déclarations publiques } end; var formMenuPrincipal: TformMenuPrincipal; implementation uses UnidadUtilidadFechas; {$R *.dfm} procedure TformMenuPrincipal.SoltarFichero (var Msg : TWMDropFiles); var CFileName: array[0..MAX_PATH] of Char; begin try if DragQueryFile(Msg.Drop, 0, CFileName, MAX_PATH) > 0 then begin txtFichero.Text := CFileName; obtenerDatosFichero; Msg.Result := 0; end; finally DragFinish(Msg.Drop); //finaliza arrastrar y soltar end; end; procedure TformMenuPrincipal.bSeleccionarFicheroClick(Sender: TObject); begin if dlAbrir.Execute then begin bModificarFecha.Enabled := true; txtFichero.Text := dlAbrir.FileName; obtenerDatosFichero; end; end; procedure TformMenuPrincipal.obtenerDatosFichero; var CreationDate,LastModifiedDate,LastAccessedDate : TDateTime; begin obtenerFechaFichero (txtFichero.Text, CreationDate, fdkCreated); obtenerFechaFichero (txtFichero.Text, LastModifiedDate, fdkLastModified); obtenerFechaFichero (txtFichero.Text, LastAccessedDate, fdkLastAccessed); lfCreacion.Caption := FormatDateTime('dd/mm/yyyy hh:mm:ss', CreationDate); lfModificacion.Caption := FormatDateTime('dd/mm/yyyy hh:mm:ss', LastModifiedDate); lfUltimoAcceso.Caption := FormatDateTime('dd/mm/yyyy hh:mm:ss', LastAccessedDate); end; procedure TformMenuPrincipal.bModificarFechaClick(Sender: TObject); begin txtFecha.Time := txtHora.Time; case opTipoFecha.ItemIndex of 0 : cambiarFechaFichero (txtFichero.Text, txtFecha.DateTime, fdkCreated); 1 : cambiarFechaFichero (txtFichero.Text, txtFecha.DateTime, fdkLastModified); 2 : cambiarFechaFichero (txtFichero.Text, txtFecha.DateTime, fdkLastAccessed); end; obtenerDatosFichero; end; procedure TformMenuPrincipal.LWEBClick(Sender: TObject); begin ShellExecute(Handle, Nil, PChar('https://www.proyectoa.com'), Nil, Nil, SW_SHOWNORMAL); end; procedure TformMenuPrincipal.FormCreate(Sender: TObject); begin //permitimos arrastrar y soltar DragAcceptFiles(Handle, True); txtFecha.DateTime := Now; txtHora.DateTime := Now; end; end. |
Unidad «UnidadUtilidadFechas.pas»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
unit UnidadUtilidadFechas; interface uses Windows, SysUtils, DateUtils; type TFileDateKind = (fdkCreated, fdkLastModified, fdkLastAccessed); function obtenerFechaFichero (const FileName: string; out FileDate: TDateTime; SpecificFileDate: TFileDateKind): boolean; function cambiarFechaFichero (const FileName: string; FileDate: TDateTime; SpecificFileDate: TFileDateKind): boolean; implementation function obtenerFechaFichero (const FileName: string; out FileDate: TDateTime; SpecificFileDate: TFileDateKind): boolean; var fHandle : integer; Succeed : boolean; FileCreationDate, FileLastModifiedDate, FileLastAccessedDate : TFileTime; TempFileTime : TFileTime; TempSystemTime : TSystemTime; begin fHandle := FileOpen(FileName, fmShareDenyNone); FileDate := 0.0; if fHandle < 0 then Succeed := false else begin Succeed := GetFileTime(fHandle, @FileCreationDate, @FileLastAccessedDate, @FileLastModifiedDate); FileClose(fHandle); if Succeed then begin case SpecificFileDate of fdkCreated : FileTimeToLocalFileTime(FileCreationDate, TempFileTime); fdkLastModified : FileTimeToLocalFileTime(FileLastModifiedDate, TempFileTime); fdkLastAccessed : FileTimeToLocalFileTime(FileLastAccessedDate, TempFileTime); end; if FileTimeToSystemTime(TempFileTime, TempSystemTime) then FileDate := EncodeDateTime(TempSystemTime.wYear, TempSystemTime.wMonth, TempSystemTime.wDay, TempSystemTime.wHour, TempSystemTime.wMinute, TempSystemTime.wSecond, TempSystemTime.wMilliSeconds) else Succeed := false; end; end; Result := Succeed; end; function cambiarFechaFichero (const FileName: string; FileDate: TDateTime; SpecificFileDate: TFileDateKind): boolean; var fHandle : integer; Succeed : boolean; TempFileTime, FinalFileTime : TFileTime; TempSystemTime : TSystemTime; pFileCreationDate, pFileLastModifiedDate, pFileLastAccessedDate : PFileTime; begin pFileCreationDate := nil; pFileLastModifiedDate := nil; pFileLastAccessedDate := nil; fHandle := FileOpen(FileName, fmShareDenyWrite or fmOpenWrite); if fHandle < 0 then Succeed := false else begin DecodeDateTime(FileDate, TempSystemTime.wYear, TempSystemTime.wMonth, TempSystemTime.wDay, TempSystemTime.wHour, TempSystemTime.wMinute, TempSystemTime.wSecond, TempSystemTime.wMilliSeconds); SystemTimeToFileTime(TempSystemTime, TempFileTime); LocalFileTimeToFileTime(TempFileTime, FinalFileTime); case SpecificFileDate of fdkCreated : pFileCreationDate := @FinalFileTime; fdkLastModified : pFileLastModifiedDate := @FinalFileTime; fdkLastAccessed : pFileLastAccessedDate := @FinalFileTime; end; Succeed := SetFileTime(fHandle, pFileCreationDate, pFileLastAccessedDate, pFileLastModifiedDate); FileClose(fHandle); end; Result := Succeed; end; end. |