Pregunta: | 275 - ARCHIVOS EN C |
Autor: | Andrés |
Les escribo porque tengo un problema. Quiero hacer una función para calcular el tamaño de un archivo. Yo escribí una que funciona muy bien con los archivos de texto pero no con un ejecutable. Quisiera saber que está mal. Esta es la función: long FileSize(FILE *file)
|
Respuesta: | Julio Alejandro |
Hola, lamento no contenstarte tu pregunta, pero si de algo te sirve, he provado tu función en Turbo C++ 3.0 y funciona perfectamente bien, incluso con archivos ejecutables, te da exactamente el mismo valor en bytes que el que te indica un DIR del DOS, solo te puedo indicar que abri el archivo con FOPEN y de solo lectura, además imprimí el valor de regreso con un sencillo PRINTF(....%ld ....). Checá bien :-) Saludos. |
Respuesta: | Jose |
Este pequeño programa te dice cual es la longitud en bytes de un archivo, en este caso el nombre del archivo es netlog.txt, situado en el directorio c:\#include |
Respuesta: | Daniel Osuna |
El problema no esta en esa función, sino en la forma en que abrís el stream: si lo abres en modo "rt", o algo parecido con t (texto): "wt", "r+t", "a+t", etc, el programa trasladará los CTRL-Z como fines de archivo y por lo tanto en el primer cracter 26 que encuentres dentro de un archivo binario, interpretará que llego al final del mismo. arch=fopen( nomarch, "rb" ); |