Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-03-2011
chinchan chinchan is offline
Miembro
 
Registrado: abr 2006
Posts: 111
Poder: 19
chinchan Va por buen camino
Hora en que se grabó un fichero

Hola a todos. Estoy haciendo una aplicación en C++ Builder y necesito saber la hora en que se grabó un fichero, realmente es para ir mirando a este fichero cada poco tiempo y saber si ha sido modificado. Gracias
Responder Con Cita
  #2  
Antiguo 25-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.329
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa esta entrada de mi blog: Fechas de un fichero (creación, modificación y últ. acceso)

Está para delphi., pero supongo que las funciones deben ser equivalentes y el código que se muestra te puede dar una idea de cómo hacerlo. Usa la API GetFileTime que es la misma llamada que deberás utilizar tú.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 25-03-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
TDate GetModifyFileDate(char* FileName)
{
   WIN32_FILE_ATTRIBUTE_DATA FileData;
   SYSTEMTIME SystemTime;
   GetFileAttributesEx(FileName, GetFileExInfoStandard, &FileData);
   FileTimeToSystemTime(&FileData.ftLastWriteTime, &SystemTime);
   return EncodeDate(SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay);
}
Saludos.
Responder Con Cita
  #4  
Antiguo 26-03-2011
chinchan chinchan is offline
Miembro
 
Registrado: abr 2006
Posts: 111
Poder: 19
chinchan Va por buen camino
Muchas gracias a los dos por darme una solución a mi pregunta. Pero os tengo que decir que estoy totalmente pez en el uso de las API de Windows y no consigo saber la hora que ha sido modificado un fichero con vuestro codigo. Seguro que está bien y la culpa es mia. Perdonarme, pero ¿me podéis empujar un poquito mas? con un ejemplo. ¿Á qué hora fue modificado el fichero C:/ejemplo.txt ?. Os doy mi palabra de que llevo un montón de horas intentándolo pero no lo consigo. Muchísimas gracias.
Responder Con Cita
  #5  
Antiguo 26-03-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Un formulario con un TEdit, un TOpenDialog, un TDateTimePicker y un botón.

Al apretar el botón se abrirá el OpenDialog, elegimos un archivo. Tras la elección el nombre del archivo aparece en el Edit y la fecha de última modificación en el DateTimePicker.

Código:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

TDate GetModifyFileDate(char* FileName)
{
   WIN32_FILE_ATTRIBUTE_DATA FileData;
   SYSTEMTIME SystemTime;
   GetFileAttributesEx(FileName, GetFileExInfoStandard, &FileData);
   FileTimeToSystemTime(&FileData.ftLastWriteTime, &SystemTime);
   return EncodeDate(SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay);
}

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if(OpenDialog1->Execute()){
    Edit1->Text = OpenDialog1->FileName;
    DateTimePicker1->Date = GetModifyFileDate(OpenDialog1->FileName.c_str());
  }
}
//---------------------------------------------------------------------------

Saludos.
Responder Con Cita
  #6  
Antiguo 26-03-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Una apreciación, si estás intentando rutas de archivo directamente en C/C++.
Recuerda que el caracter "\" es de control por lo que si se quiere es usarlo talcual, se debe escribir dos veces. Así, C:\ejemplo.txt será "C:\\ejemplo.txt"

Código:
TDate Date = GetModifyFileDate("C:\\ejemplo.txt");
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
seleccionar hora en datetimepicker desde hora especifica gonza_619 Varios 4 21-11-2010 20:42:19
como grabo la hora en un campo esimon OOP 2 14-05-2007 19:33:52
Fecha y Hora de creacion de un fichero RaulChemical OOP 1 10-08-2006 09:31:29
Como grabo GIF en Interbase 6.0 sercornejov Conexión con bases de datos 3 03-09-2003 05:42:39
Copmo grabo un registro a varias tablas kia Conexión con bases de datos 4 18-07-2003 23:58:00


La franja horaria es GMT +2. Ahora son las 09:20:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi