Ler a Data e a Hora de criação de um arquivo

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

valtecomjm
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 30 Jul 2014 20:43
Localização: uberaba mg

Ler a Data e a Hora de criação de um arquivo

Mensagem por valtecomjm »

Boa noite,
Gostaria de saber se existe em Harbour 3.2.0 alguma função para ler a Data e a Hora de criação de um arquivo, não me refiro a Data de alteração, esta eu consigo com a função DIRECTORY(), preciso mesmo é da data da criação do arquivo, aquela que aparece quando clicamos sobre o arquivo com o botão direito do mouse e selecionamos PROPRIEDADES.
Obrigado.
Valteçom
Uberaba MG Brasil
Avatar do usuário
zazibr
Usuário Nível 2
Usuário Nível 2
Mensagens: 72
Registrado em: 11 Set 2004 17:07
Localização: Campo Grande/MS

Ler a Data e a Hora de criação de um arquivo

Mensagem por zazibr »

agora so traduzir para o harbour é uma api do windows

fonte

http://www.accessfaq.com.br/webroot/def ... a_Id%3D107


c) Biblioteca FileSystemObject do Microsoft Scripting Runtime:
Para exibir as datas em que um arquivo foi criado, modificado e acessado pela última vez, utilize a função abaixo:

Sub ShowFileAccessInfo(filespec)
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(filespec)
s = UCase(filespec) & vbCrLf
s = s & "Created: " & f.DateCreated & vbCrLf
s = s & "Last Accessed: " & f.DateLastAccessed & vbCrLf
s = s & "Last Modified: " & f.DateLastModified
MsgBox s, 0, "File Access Info"
End Sub
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Ler a Data e a Hora de criação de um arquivo

Mensagem por Jairo Maia »

Olá Valteçom,

Em Harbour você pode usar a Classe FileInfo (linkar a lib xhb):

Código: Selecionar todos

#include "hbclass.ch"
#include "error.ch"

Function Main()
 LOCAL aFileInfo, oFileInfo, cFile := "SeuArquivo.ext"
      
 SET DATE BRIT
 SET CENTURY ON
      
 aFileInfo := Directory( cFile )
 ? aFileInfo[1,1]
 ? aFileInfo[1,2]
 ? aFileInfo[1,3]
 ? aFileInfo[1,4]
      
 oFileInfo := FileInfo():new( cFile )
      
 ?
 ? oFileInfo:fileName
 ? oFileInfo:fileSize
 ? oFileInfo:fileAttr
 ? oFileInfo:createDate
 ? oFileInfo:createTime
      
Return Nil

CLASS FileInfo
 PROTECTED:
 DATA    cFileName    INIT ""
 DATA    aInfo        INIT { "", 0, CtoD(""), 0, CtoD(""), 0 }
 METHOD  getInfo

 EXPORTED:
 METHOD  init

 ACCESS  fileName     INLINE ::cFileName
 ASSIGN  fileName(c)  INLINE ::getInfo(c)

 ACCESS  fileAttr     INLINE ::aInfo[1]
 ACCESS  fileSize     INLINE ::aInfo[2]
 ACCESS  createDate   INLINE ::aInfo[3]
 ACCESS  createTime   INLINE TString( ::aInfo[4] )
 ACCESS  changeDate   INLINE ::aInfo[5]
 ACCESS  changeTime   INLINE TString( ::aInfo[6] )
ENDCLASS

METHOD init( cFileName ) CLASS FileInfo
 IF Valtype( cFileName ) == "C"
  ::getInfo( cFileName )
 ENDIF
RETURN self

METHOD getInfo( cFileName ) CLASS FileInfo
 IF .NOT. File( cFileName )
  RETURN ::error( "File not found"         , ;
         ::className(), "getInfo" , EG_ARG, {cFileName}        )
 ENDIF

 ::cFileName := cFileName
 FileStats( cFileName, @::aInfo[1], ;
                       @::aInfo[2], ;
                       @::aInfo[3], ;
                       @::aInfo[4], ;
                       @::aInfo[5], ;
                       @::aInfo[6]  )
RETURN self
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Ler a Data e a Hora de criação de um arquivo

Mensagem por Itamar M. Lins Jr. »

Ola!
ALLguém pode verificar se essa função filestat() está funcionando ?
Eu vejo que ela não está pegando corretamente a data e hora do EXE, pega sempre a data e hora atual.
Estou usando o HB 3.4

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Ler a Data e a Hora de criação de um arquivo

Mensagem por Kapiaba »

Boa tarde, veja se ajuda:

Código: Selecionar todos

   IF FILE( "C:\INST_NFE\CERTFLEX.EXE" )

      cFILE := "C:\INST_NFE\CERTFLEX.EXE"  // 03/09/2014

      aDIR  := DIRECTORY( cFILE )

      dEXE  := aDIR[1] [3]  // Data do .exe no diretorio C:\INST_NFE

      cCertFlex := DTOC( dEXE ) + " - " +  "VersÆo: 2.05a"

      IF dEXE < CTOD( "30/12/2014" ) // Versao errada do CERTFLEX.EXE Atualizar

         MsgStop( OemToAnsi( "ATEN€ÇO USUµRIO:                     " )+CRLF+ ;
                  OemToAnsi( "VERSÇO DO CERTFLEX.EXE INCORRETA.    " )+CRLF+ ;
                  OemToAnsi( "ENTRE EM CONTATO COM O SUPORTE, E    " )+CRLF+ ;
                  OemToAnsi( "SOLICITE A VERSÇO: " +cCertFlex        )+CRLF+ ;
                  OemToAnsi( "INFORME O SUPORTE, POR FAVOR...      " )+CRLF+ ;
                  OemToAnsi( "TECLE <ENTER> PARA CONTINUAR...      " ),      ;
                  OemToAnsi( "SOLICITE A VERSÇO: " +cCertFlex        ) )

      ENDIF

   ENDIF
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Ler a Data e a Hora de criação de um arquivo

Mensagem por Jairo Maia »

Itamar, não é má vontade, mas não tenho aqui o ambiente Harbour 3.4, com 3.0 e 3.2 está funcionando corretamente.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Responder