Page 1 of 1

Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 3:51 pm
by acuellar
Buenas estimados

Ésta función cambia la fecha de modificación de un archivo

Code: Select all

SetFDaTi( <cFileName> , [<dFileDate>], [<cFileTime>] ) --> lSuccess
 
Cuál es para cambiar la de creación

Gracias por la ayuda.

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 5:10 pm
by karinha

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 7:07 pm
by acuellar
Gracias João

No encuentro cual es.

Quizás alguien sabe cual es.

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 7:28 pm
by karinha
Adhemar intenta asi:

Code: Select all


   hFile := Fopen("ficheroafechar.ext")

   SetFTime(hFile, "10:20:59", "27:11:2019")

   Fclose(hFile)

 

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 8:38 pm
by acuellar
Estimado Joao

Con SetFTime no cambia nada.

con SetFDaTi cambia, lo raro es que el explorador de windows el algunas carpetas muestra los archivos con la fecha de creación de la carpeta donde se encuentra y en otras muestra la fecha de modificación.

Es bien raro.

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 8:40 pm
by cnavarro
Puedes intentar renombrar el fichero, copiarlo con el nombre original y borrar el que renombraste

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 9:16 pm
by acuellar
Gracias estimado Cristobal

La idea es cambiar la fecha en forma masiva

Tengo una versión antigua de File Date Changer que funciona perfecto. Descargué una nueva versión y el Windows Defender no permite que funcione.

Se me ocurrió hacer uno propio.
Aquí el código por si a alguien le interesa y hagan mejoras y pruebas.

Code: Select all

#include "fivewin.ch"
*
Function Main()
   Private aFiles:={}, aLista, oBrw,xLen,cPath

   SelectCarpeta()  
   CargaTabla()

   DEFINE DIALOG oDlg FROM 0,0 TO 18,57 TITLE "Lista de archivos";oDlg:lHelpIcon:=.F.
     oBrw:=TXBrowse():New( oDlg )
     oBrw:nMarqueeStyle:=5
   oBrw:lHScroll:=.F.
   oBrw:nColDividerStyle:=LINESTYLE_LIGHTGRAY
   oBrw:nRowDividerStyle:=LINESTYLE_LIGHTGRAY
   oBrw:bClrSelFocus:={ || { CLR_BLUE, { { 0.1,16777215,12961221 } }} }
   oBrw:bClrSel:={ || { CLR_BLUE, { { 0.30,16777215,12961210 } }} }
   oBrw:bClrRowFocus:= { || { CLR_BLUE, { { 0.30,16777215,12961210 } }} } 
   oBrw:lHScroll:=.F.
   oBrw:lRecordSelector:=.F.
   oBrw:lAllowRowSizing:= .F.
   oBrw:lAllowColHiding := .F. 
     oBrw:lAllowColSwapping:=.F.
       
       oBrw:SetArray( aFiles, .T. ) 
               
       oBrw:aCols[1]:cHeader := "ARCHIVO"
       oBrw:aCols[1]:nWidth:=302
       oBrw:aCols[2]:cHeader := "FECHA   "
       oBrw:aCols[3]:cHeader := "HORA" 
       oBrw:lHScroll := .F. 
               
       oBrw:CreateFromCode()
      

     ACTIVATE DIALOG oDlg CENTERED ON INIT (BotDlg(oDlg,oBrw),oDlg:Update(),oBrw:Move( 0, 0, oDlg:nWidth()-7, oDlg:nHeight()-70),oBrw:Refresh() )
 
Return nil
*
FUNCTION BotDlg( oDlg, oBrw )
   Local oBtnBar

   @oDlg:nHeight()-60,70  BTNBMP PROMPT "Selec.Carpeta" OF oDlg SIZE 90,18 ACTION ( SelectCarpeta(), CargaTabla(), oBrw:SetArray( aFiles, .T. ) ) 2007
   @oDlg:nHeight()-60,170  BTNBMP PROMPT "Cambiar Fecha" OF oDlg SIZE 90,18 ACTION ( CambiaFecha(), CargaTabla(), oBrw:SetArray( aFiles, .T. )  ) 2007
   @oDlg:nHeight()-60,270 BTNBMP PROMPT "Salir" OF oDlg SIZE 90,18 ACTION oDlg:End()    CANCEL 2007
  
Return Nil
*
Function SelectCarpeta()
  cPath:=cGetDir( "Seleccione la carpeta",hb_CurDrive()+":\",0 )           
  cPath+="\"
Return Nil
*
FUNCTION CargaTabla()
  
   aFiles:={}
   
   aLista:= Directory( cPath+"*.*")
   IF LEN( aLista ) < 1
        MsgBeep()
        MsgStop( "Carpeta vacía","ATENCION !!!" )
        SelectCarpeta()
   ENDif
      
   xLen:=LEN( aLista )
   FOR nCount = 1 TO xLen
     AADD( aFiles, { ALLTRIM( aLista[ nCount ][1] ), aLista[ nCount ][3], SUBSTR( aLista[ nCount ][4],1,5 ) } )
   NEXT
Return Nil
*   
FUNCTION CambiaFecha()
 
       FOR I = 1 TO xLen
         cFile:=cPath+ALLTRIM( aLista[ I ][1] )
         SetFDaTi( cFile, Date(),Time() ) 
       NEXT
      
Return Nil 

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 9:40 pm
by cnavarro
Adhemar, si la operación es para hacerla de forma masiva, el tema cambia claro, lo que yo te proponía era para aplicarlo de forma puntual.
Creo recordar que hace tiempo me encontré con el mismo tema que tú, pero no recuerdo si llegué a solucionarlo. Lo busco y te digo algo si veo una posible solución.

Re: Cambiar fecha de creación de un archivo

Posted: Wed Nov 27, 2019 9:48 pm
by acuellar
Muchas gracias Cristobal.