Cómo encontrar el tamaño de un archivo en programación C

Como Encontrar El Tamano De Un Archivo En Programacion C



¿Eres nuevo en la programación C y buscas una manera de encontrar el tamaño de un archivo? ¡No vayas a ningún otro lado! En esta guía, aprenderá el proceso de encontrar el tamaño de un archivo en programación C. La cantidad de bytes utilizados para almacenar los datos dentro de un archivo se denomina tamaño del archivo. Al conocer el tamaño del archivo, puede realizar varias operaciones de manejo de archivos, incluidas la copia, la lectura o la escritura.

A través de las pautas paso a paso mencionadas en este tutorial y ejemplos de códigos simples, puede encontrar rápidamente el tamaño de cualquier archivo.







Encuentra el tamaño de un archivo en programación C

Hay diferentes formas de encontrar el tamaño de un archivo en C que se mencionan a continuación.



1: Uso de la función stat()

En C, el método más directo para averiguar el tamaño de un archivo es usar el estadística() Función de llamada al sistema. El estadística() recupera la información del estado del archivo y la almacena en una estructura. Uno de los miembros de esta estructura es st_size , que da el tamaño del archivo en bytes. Este método evita tener que mover manualmente el puntero del archivo, lo que lo hace más fácil de usar y menos propenso a errores.



#incluir
#incluir

int principal ( )
{
estructura estadística calle;
largo tamaño ;
    si ( estadística ( 'C_Archivo.txt' , & calle ) == 0 )
    {
        tamaño = st.st_size;
        imprimir ( 'El tamaño del archivo es %ld bytes. \norte ' , tamaño ) ;
    }
    devolver 0 ;
}

 
Este código recupera el tamaño de un archivo llamado C_Archivo.txt utilizando el estadística() método de la biblioteca. El st_size elemento de la estructura stat, en el que la función guarda la información sobre el archivo y nos permite encontrar el tamaño del archivo. El tamaño del archivo se mantiene en el tamaño variable, y luego imprimirf() se utiliza para imprimir el tamaño en la consola junto con un mensaje. Antes de intentar acceder a la st_size propiedad, la sentencia if verifica que la estadística() la llamada a la función fue exitosa. Luego, el código devuelve 0 para mostrar que se ejecutó correctamente.





Producción

 

2: Uso de la función fstat()

Otra función similar a estadística() es el fstat() función, que es equivalente a estadística() pero funciona en un archivo abierto en lugar de un nombre de archivo. El fstat() función recupera información sobre el archivo abierto descrito por el descriptor de archivo pasó a ella. Una referencia a un archivo abierto está representada por el número entero descriptor de archivo . similar a estadística(), fstat() devuelve la información de estado sobre el archivo proporcionado, incluido su tamaño en bytes.



#incluir
#incluir
#incluye

int principal ( ) {
int fd;
estructura estadística calle;
fd = abierto ( 'C_Archivo.txt' , EXCLUSIVAMENTE ) ;
    si ( estado ( fd, & calle ) == - 1 ) {
        imprimir ( 'Error al obtener la información del archivo. \norte ' ) ;
        devolver 1 ;
    }
    imprimir ( 'El tamaño del archivo es %ld bytes. \norte ' , st.st_size ) ;
cerca ( f.d. ) ;
    devolver 0 ;
}

 
En el código anterior, el archivo se abre inicialmente en este ejemplo llamando al abierto() función con el nombre del archivo y el O_RDONLY opción, que abre el archivo en modo de sólo lectura. A descriptor de archivo (fd) es devuelto por la función. Después de eso, usamos el fstat() método para obtener información sobre el archivo, enviándolo como un puntero al calle estructura como segundo parámetro y el descriptor de archivo como primer argumento. El calle estructura es donde esta función guarda la información del archivo después de recuperarlo.

El tamaño del archivo en bytes, que se guarda en el st_size miembro de calle estructura, luego se imprime si no hubo ningún error al usar la fstat() función. De lo contrario, imprime un mensaje de error.

Producción

 

3: Uso de las funciones fseek() y ftell()

Otro método para encontrar el tamaño de un archivo en programación C es usar el fbuscar() y ftell() funciones El ftell() El método devuelve la posición actual del puntero del archivo, mientras que la función fseek() mueve el puntero del archivo a un lugar determinado en el archivo. El tamaño del archivo en bytes se puede encontrar usando el ftell() función para adquirir la posición actual después de usar el fbuscar() función para reubicar el puntero del archivo al final del archivo.

#incluir
#incluir

int principal ( )
{
ARCHIVO * fp;
largo tamaño ;

fp = foabierto ( 'C_Archivo.txt' , 'rb' ) ;
buscar ( fp, 0L, SEEK_END ) ;
    tamaño = decir ( fp ) ;
cerrar ( fp ) ;
    imprimir ( 'El tamaño del archivo = %ld bytes. \norte ' , tamaño ) ;

    devolver 0 ;
}

 
En el código anterior, usando el fopen() método, la aplicación primero abre el C_Archivo.txt en modo binario. El fbuscar() La función luego usa el SEEK_END opción para reubicar el puntero del archivo al final del archivo. La ubicación actual del archivo, que corresponde a su tamaño en bytes, se puede encontrar usando el ftell() función. A continuación, el código utiliza el cerrar() método para cerrar el archivo después de imprimir el tamaño del archivo en la consola.

Producción

 

4: Uso de la función de longitud de archivo ()

El siguiente método es usar la biblioteca de administración de archivos, que proporciona muchas funciones de manipulación de archivos, incluidas funciones para obtener el tamaño de un archivo . Por ejemplo, la función longitud de archivo () devuelve la longitud de un archivo en bytes, dado su nombre de archivo. Esta función requiere el archivo de encabezado .

También hay otra función, _filelengthi64(), que devuelve la longitud de un archivo en bytes, para archivos de más de 4 GB. La diferencia entre las dos funciones es el tipo de sus valores de retorno, que muestra cuántos bytes puede manejar la función.

#incluir
#incluir

int principal ( )
{
largo tamaño ;
carbonizarse * fnombre = 'C_Archivo.txt' ;
    tamaño = longitud del archivo ( archivono ( abierto ( fnombre, 'rb' ) ) ) ;
    imprimir ( 'El tamaño del archivo = %ld bytes. \norte ' , tamaño ) ;

    devolver 0 ;
}

 
El tamaño del archivo C_Archivo.txt en bytes se obtiene mediante este código utilizando la biblioteca de administración de archivos de Windows. Cuando se proporciona el descriptor de archivo de un archivo abierto, el método longitud de archivo () devuelve la longitud del archivo en bytes.

fopen() abre el archivo en modo binario de solo lectura en este código, y fileno() devuelve el descriptor de archivo del archivo abierto. Entonces, imprimirf() se utiliza para imprimir el tamaño del archivo. Luego, la función devuelve 0, lo que indica que se ha ejecutado con éxito.

Producción

 

Conclusión

Hay varios métodos para encontrar el tamaño de un archivo en bytes en C , cada uno con sus propias ventajas y desventajas. En el tutorial anterior se analizan cuatro métodos diferentes; estadística() función, fstat() función, fbuscar() y ftell() funciones, y la longitud de archivo () función. Comprender estas funciones ayudará a los usuarios a encontrar el tamaño de cualquier archivo en su sistema.