[C con Clase] Determinar tamaño de un archivo.

Jorge Medina jorge en bsdchile.cl
Jue Abr 30 17:47:38 CEST 2009


2009/4/28 kendor lacorn <xnfinite en gmail.com>:
> Puedes usar la estructura fstat, que te permite acceder a informacion de un
> fichero particular.
>
> Su uso es el siguiente:
>
> int fd = open("archivo", "O_RDONLY")
>
> struct fstat datos;
>
> fstat(fd, &datos);
>
> printf("El archivo pesa %ld", datos.st_size);

esta es la mejor opcion si estas en window funciona con __fstat

busca en msdn saludos tambien sirve optener las primera direccion de
memoria del archivo y la ultima y restarla pero fstat es la solucion
correcta.


> El 28 de abril de 2009 15:24, Rubén Calabuig <racalabuig en gmail.com>
> escribió:
>>
>> Hola:
>>
>> Una forma que se me ocurre, es utilizar las funciones "fseek()" y
>> "ftell()"
>>
>> ejemplo:
>>
>>
>> //--------------------------------------------------------------------------------------------------------
>> int tamanio; // declaro la variable que recibira el tamanio.
>> FILE* arch; // declaro un puntero de tipo FILE.
>>
>> arch=fopen("miArchivo.dat", "rb"); // abro el archivo de solo lectura.
>> fseek(arch, SEEK_END);            // me ubico en el final del archivo.
>> tamanio=ftell(arch);                     // obtengo su tamanio en BYTES.
>> fclose(arch);                               // cierro el archivo.
>>
>>
>> //---------------------------------------------------------------------------------------------------------
>>
>> Espero que te sirva.
>>
>> El 27 de abril de 2009 14:45, Adolfo Cárdenas <adocardenas en gmail.com>
>> escribió:
>>>
>>> Para mi, lo más sencillo es usar: filelength
>>> #include <io.h>
>>> #include <fcntl.h>
>>> #include <sys\stat.h>
>>> #include <stdio.h>
>>>
>>> //ESTA FUNCION RETORNA EL TAMAÑO DE UN ARCHIVO
>>> long SizeF(char* f)
>>> {
>>>  int h;
>>>  long t;
>>>
>>>  if((h = open(f, O_BINARY)) == -1) return -1;
>>>  else
>>>  {
>>>         t = filelength(h);
>>>         close(h);
>>>  }
>>>  return t;
>>> }
>>>
>>> _______________________________________________
>>> Lista de correo Cconclase Cconclase en listas.conclase.net
>>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>>
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
Please read
http://www.thezeitgeistmovement.com/
http://www.thevenusproject.com
and take your own conclusion.
-------------------------------------------------------------------------------
Jorge Andrés Medina Oliva.
System Manager & BSD Software Advocacy Leader
From: http://www.bsdchile.cl
-------------------------------------------------------------------------------




Más información sobre la lista de distribución Cconclase