Foros del Web » Programación para mayores de 30 ;) » Programación General »

el tamaño en bytes de un archivo?

Estas en el tema de el tamaño en bytes de un archivo? en el foro de Programación General en Foros del Web. bueno ahi esta la pregunta, usando el header fsream.h, como puedo obtener el tamaño en bytes del archivo? gracias y saludos....
  #1 (permalink)  
Antiguo 09/02/2005, 12:53
Avatar de Jose2k  
Fecha de Ingreso: junio-2003
Mensajes: 98
Antigüedad: 21 años, 5 meses
Puntos: 0
el tamaño en bytes de un archivo?

bueno ahi esta la pregunta, usando el header fsream.h, como puedo obtener el tamaño en bytes del archivo? gracias y saludos.
  #2 (permalink)  
Antiguo 09/02/2005, 13:20
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Código:
unsigned long GetFileSize(char *Archivo)
{
  unsigned long DSize = 0;
  ifstream File(Archivo, ios::in | ios::binary | ios::ate);
  DSize = File.tellg();
  File.close();
  return DSize;
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 09/02/2005 a las 13:21
  #3 (permalink)  
Antiguo 09/02/2005, 16:03
Avatar de Jose2k  
Fecha de Ingreso: junio-2003
Mensajes: 98
Antigüedad: 21 años, 5 meses
Puntos: 0
gracias, totales :)
  #4 (permalink)  
Antiguo 09/02/2005, 16:04
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
De nadas
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 09/02/2005, 16:16
Avatar de Jose2k  
Fecha de Ingreso: junio-2003
Mensajes: 98
Antigüedad: 21 años, 5 meses
Puntos: 0
mmm sucedio que al leer los archivos, no lee nada. q paso?
  #6 (permalink)  
Antiguo 09/02/2005, 16:22
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
¿Que archivos y que codigo estas usando?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 09/02/2005, 16:24
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Yo he probado este codigo y me va perfecto, se le pasa el nombre del archivo como parametro iostream es para el cout:

Código:
#include <iostream>
#include <fstream>

using namespace std;

unsigned long GetFileSize(char *Archivo)
{
  unsigned long DSize = 0;
  ifstream File(Archivo, ios::in | ios::binary | ios::ate);
  DSize = File.tellg();
  File.close();
  return DSize;
}

void main(int argc, char **argv)
{
  if (argc > 1)
  {
    cout << GetFileSize(argv[1]);
  }
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #8 (permalink)  
Antiguo 09/02/2005, 16:25
Avatar de Jose2k  
Fecha de Ingreso: junio-2003
Mensajes: 98
Antigüedad: 21 años, 5 meses
Puntos: 0
estoy leyendo un archivo de texto cualquiera, *no* binario.
uso:
ifstream file;
file.open("init.txt");
ahora, puse:
file.open("init.txt", ios::in | ios::binary | ios::ate);

q sera? gracias de nuevo, por cierto.
  #9 (permalink)  
Antiguo 09/02/2005, 16:28
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Que no es para leer ese codigo exactamente, es para encontrar el tamaño, ios::ate situa el puntero del archivo al final (ate=at end supongo).

Para leer quita el ios::ate o para ir al principio del archivo usa esto:

file.seekg(0, ios::beg);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #10 (permalink)  
Antiguo 09/02/2005, 16:34
Avatar de Jose2k  
Fecha de Ingreso: junio-2003
Mensajes: 98
Antigüedad: 21 años, 5 meses
Puntos: 0
listo. gracias, eternas ;)
  #11 (permalink)  
Antiguo 09/02/2005, 16:35
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
No problem, me alegro de que te funcione
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:24.