El otro dia estaba haciendo un programa de broma (Aunque bastante… digamos, desagradable) que llenaba un archivo de texto a base espacios (jj) pero necesitaba una forma de controlarlo y se me ocurrio hacer otro programa que comprobara el tamaño del archivo para no excederme. El programa no utiliza ninguna libreria de sistema o llamada a sistema por lo que pienso que es portable, de todos modos, si encuentran que no es portable en algun SO, me envian un mail, solo utilizo un puntero FILE y lo basico en abrir archivos. El codigo lo dejo aqui: (Es corto)
#include <stdio.h>
int main( int argc, char *argv[] ) {
FILE *archivo;
int contador = 1;
char recorrer=0;
unsigned long int size=0;
if ( argc < 2 ) {
printf("Uso: file archivo1\n file archivo1 archivo2\n");
getchar();
return 1;
}
while( contador < argc ) {
archivo=fopen( argv[contador], "rb" );
if (archivo==NULL){
printf("Archivo invalido");
return 1;
}
while( feof(archivo)==0 ) {
size +=1;
recorrer=getc(archivo);
}
fclose( archivo );
printf("El archivo %s tiene %f MB\n", argv[contador], (float)size/1000000); /*Eliminar si quieren*/
contador+=1;
size=0;
archivo=NULL;
}
return 0; /*Si quieren utilizarlo con los mismos fines que yo, entonces en vez de cero pongan size/1000000*/
}


No es necesario recorrerlo para tener el tamaño:
fopen(….
fseek(archivo, 0, SEEK_END); // Se posiciona al final del archivo
tamanio = ftell(archivo); // Devuelve la posición actual del archivo (en bytes)
fclose(…
printf(“Tamaño: %d\n”, tamanio);
saludos…
bueno …kisiera saber como obtengo el tamaño total de disco duro …como tb espacio ocupado,libre….como hacer un explorador en C o java ahhh mostrar el tamaño Libr., ocupad y total en una torta ,barra,… es una tarea y me esta costano mucho encontrar librerias ke hagan esto aver si alguien me facilita…
ahh mi trabajo consiste en ” monitorear el almacenamiento en disco duro”
ahh como obtienes la tenperatura de un HD ahhhh era ke no muestre ese informe donde meti toda esa cosa ahh
bueno gracias de antemeno
msm : shanon.4ever@gmail.com