Fecha/Hora de creacion

Fecha/Hora de creacion

Postby RodolfoRBG » Sat Nov 22, 2008 7:08 pm

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
User avatar
RodolfoRBG
 
Posts: 257
Joined: Tue May 16, 2006 4:46 pm
Location: San Luis Potosi, SLP, Mexico

Postby MGA » Mon Nov 24, 2008 10:15 am

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
MGA
 
Posts: 1252
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Fecha/Hora de creacion

Postby mmercado » Mon Nov 24, 2008 9:01 pm

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 view
#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
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 89 guests