Fecha/Hora de creacion

Post Reply
User avatar
RodolfoRBG
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico
Contact:

Fecha/Hora de creacion

Post by RodolfoRBG »

Hola Foro, con la funcion Directory() puedo extraer, entre otras cosas, la fecha y hora de un archivo o directorio, pero esos datos son los del ultimo cambio.

Alguien puede decirme como obtener la fecha y hora pero de creacion de un archivo o directorio?

Gracias
RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
MGA
Posts: 1258
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Post by MGA »

cFile = 'c:\Plan001.xls' \\ arquivo
cAtr = '' \\ atributos
nSiz = 0 \\ tamanho
dCreate = ctod('') \\ data criação
nCreate = 0 \\ hora criação em secs
dChange = ctod('') \\ data ult.alteração
nChange = 0 \\ hora ult.alteração em secs
FileStats(cFile,@cAtr,@nSiz,@dCreate,@nCreate,@dChange,@nChange)
ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Fecha/Hora de creacion

Post by mmercado »

RodolfoRBG wrote: Alguien puede decirme como obtener la fecha y hora pero de creacion de un archivo o directorio?
Hola Rodolfo:

Creo que pusiste tu pregunta en el foro equivocado pero prueba lo siguiente:

I'm afraid you posted your question in the wrong forum but try this:

Code: Select all | Expand

#include "FiveWin.ch"

//------------------------------------------------------------------------------------------//

Function Main()

   Local aTime := FileTimes( "c:\fwh\samples\test.prg", 3 )

   ? Str( aTime[ 1 ], 4 ) + "/" + StrZero( aTime[ 2 ], 2 ) + "/" + ;
     StrZero( aTime[ 3 ], 2 ) + Space( 1 ) + ;
     StrZero( aTime[ 4 ], 2 ) + ":" + StrZero( aTime[ 5 ], 2 ) + ":" + ;
     StrZero( aTime[ 6 ], 2 )

Return nil

//------------------------------------------------------------------------------------------//

#pragma BEGINDUMP
#include <Windows.h>
#include <mapiwin.h>
#include <ClipApi.h>

HB_FUNC( FILETIMES ) // params cFileName, nTime --> { nYear, nMonth, nDay, nHour, nMin, nSec }
{
   LPSTR cFileName = _parc( 1 ) ;
   int nTime       = ( ISNUM( 2 ) ? _parni( 2 ) :  1 ) ; // defaults to 1

   FILETIME ftCreate, ftAccess, ftWrite ;
   SYSTEMTIME stTime ;
   BOOL bRet ;
   HANDLE hFile = CreateFile( cFileName, GENERIC_READ, FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ) ;

   if( ! hFile )
      return ;

   GetFileTime( (HANDLE) hFile, &ftCreate, &ftAccess, &ftWrite ) ;

   switch( nTime )
   {
      case 1 : // last update
         FileTimeToSystemTime( &ftWrite, &stTime ) ;
         break ;
      case 2 : // last access
         FileTimeToSystemTime( &ftAccess, &stTime ) ;
         break ;
      case 3 : // creation
         FileTimeToSystemTime( &ftCreate, &stTime ) ;
         break ;
      default : // last update
         FileTimeToSystemTime( &ftWrite, &stTime ) ;
         break ;
   }

   SystemTimeToTzSpecificLocalTime( NULL, &stTime, &stTime ) ;
   CloseHandle( hFile ) ;
   _reta( 6 ) ;
   _storni( stTime.wYear,   -1, 1 ) ;
   _storni( stTime.wMonth,  -1, 2 ) ;
   _storni( stTime.wDay,    -1, 3 ) ;
   _storni( stTime.wHour,   -1, 4 ) ;
   _storni( stTime.wMinute, -1, 5 ) ;
   _storni( stTime.wSecond, -1, 6 ) ;
}
#pragma ENDDUMP

La función FileTimes te revuelve un array con año, mes, dia, hora, minuto y segundo de la opción requerida.

The function FileTimes teturns an array containing year, month, day, hour, minute and second for the required option.

Saludos.
Regards.

Manuel Mercado
Post Reply