Come trovare la dimensione di un file nella programmazione C

Come Trovare La Dimensione Di Un File Nella Programmazione C



Sei nuovo nella programmazione in C e stai cercando un modo per trovare la dimensione di un file? Non andare da nessun'altra parte! In questa guida imparerai il processo per trovare la dimensione di un file nella programmazione C. Il numero di byte utilizzati per contenere i dati all'interno di un file è indicato come dimensione del file. Conoscendo le dimensioni del file, è possibile eseguire varie operazioni di gestione dei file, tra cui la copia, la lettura o la scrittura.

Attraverso le linee guida dettagliate menzionate in questo tutorial e semplici esempi di codice, puoi trovare rapidamente la dimensione di qualsiasi file.







Trova la dimensione di un file nella programmazione C

Esistono diversi modi per trovare la dimensione di un file in C menzionati di seguito.



1: Utilizzo della funzione stat()

In C, il metodo più semplice per scoprire la dimensione di un file è usare l'estensione statistica() funzione di chiamata di sistema. IL statistica() La funzione recupera le informazioni sullo stato del file e le memorizza in una struttura. Uno dei membri di questa struttura è st_size , che fornisce la dimensione del file in byte. Questo metodo evita di dover spostare manualmente il puntatore del file, rendendolo più facile da usare e meno soggetto a errori.



#include
#include

int principale ( )
{
struct statistica m;
lungo misurare ;
Se ( statistica ( 'File_C.txt' , & st ) == 0 )
{
misurare = st.st_size;
printf ( 'La dimensione del file è %ld byte. \N ' , misurare ) ;
}
ritorno 0 ;
}


Questo codice recupera la dimensione di un file chiamato C_File.txt usando il statistica() metodo dal biblioteca. IL st_size elemento della struct stat, in cui la funzione conserva le informazioni sul file, e ci permette di trovare la dimensione del file. La dimensione del file viene mantenuta nella dimensione variabile, quindi stampaf() viene utilizzato per stampare le dimensioni sulla console insieme a un messaggio. Prima di tentare di accedere a st_size proprietà, l'istruzione if verifica che il statistica() chiamata di funzione è andata a buon fine. Il codice restituisce quindi 0 per indicare che è stato eseguito correttamente.





Produzione


2: Utilizzo della funzione fstat()

Un'altra funzione simile a statistica() è il fstat() funzione, che è equivalente a statistica() ma funziona su un file aperto anziché su un nome file. IL fstat() La funzione recupera le informazioni sul file aperto descritto dall' descrittore di file passato ad esso. Un riferimento a un file aperto è rappresentato dal numero intero descrittore di file . Analogamente a statistica(), fstat() restituisce le informazioni sullo stato del file fornito, inclusa la sua dimensione in byte.



#include
#include
#include

int principale ( ) {
int fd;
struct statistica m;
fd = aperto ( 'File_C.txt' , O_RDONLY ) ;
Se ( stato ( fd, & st ) == - 1 ) {
printf ( 'Errore durante il recupero delle informazioni sul file. \N ' ) ;
ritorno 1 ;
}
printf ( 'La dimensione del file è %ld byte. \N ' , st.st_size ) ;
vicino ( fd ) ;
ritorno 0 ;
}


Nel codice precedente, il file viene inizialmente aperto in questo esempio chiamando il metodo aprire() funzione con il nome del file e il O_RDONLY opzione, che apre il file in modalità di sola lettura. UN descrittore di file (fd) viene restituito dalla funzione. Successivamente, usiamo il fstat() metodo per ottenere informazioni sul file, inviandolo come puntatore al file st structure come secondo parametro e il descrittore di file come primo argomento. IL st struttura è dove questa funzione conserva le informazioni del file dopo averlo recuperato.

La dimensione del file in byte, che viene conservata nel formato st_size membro del st structure, viene quindi stampato se non si sono verificati errori durante l'utilizzo di fstat() funzione. In caso contrario, stampa un messaggio di errore.

Produzione


3: Uso delle funzioni fseek() e ftell()

Un altro metodo per trovare la dimensione di un file nella programmazione C consiste nell'utilizzare l'estensione cerca() E ftell() funzioni. IL ftell() Il metodo restituisce la posizione corrente del puntatore del file, mentre la funzione fseek() sposta il puntatore del file in una determinata posizione nel file. La dimensione del file in byte può essere trovata utilizzando l'estensione ftell() funzione per acquisire la posizione corrente dopo aver utilizzato il cerca() funzione per riposizionare il puntatore del file alla fine del file.

#include
#include

int principale ( )
{
FILE * fp;
lungo misurare ;

fp = aperto ( 'File_C.txt' , 'rb' ) ;
cerca ( fp, 0L, SEEK_END ) ;
misurare = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'La dimensione del file = %ld byte. \N ' , misurare ) ;

ritorno 0 ;
}


Nel codice sopra, usando il apri() metodo, l'applicazione apre prima il file C_File.txt in modalità binaria. IL cerca() la funzione utilizza quindi il CERCA_END opzione per riposizionare il puntatore del file alla fine del file. La posizione corrente del file, che corrisponde alla sua dimensione in byte, può quindi essere trovata utilizzando l'estensione ftell() funzione. Il codice utilizza quindi il fchiudi() metodo per chiudere il file dopo aver stampato le dimensioni del file sulla console.

Produzione


4: Utilizzo della funzione filelength()

Il metodo successivo consiste nell'utilizzare la libreria di gestione dei file, che fornisce molte funzioni di manipolazione dei file, comprese le funzioni da ottenere la dimensione di un file . Ad esempio, la funzione lunghezza file() restituisce la lunghezza di un file in byte, dato il nome del file. Questa funzione richiede il file di intestazione .

C'è anche un'altra funzione, _filelengthi64(), che restituisce la lunghezza di un file in byte, per file di dimensioni superiori a 4 GB. La differenza tra le due funzioni è il tipo dei loro valori restituiti, che mostra quanti byte può gestire la funzione.

#include
#include

int principale ( )
{
lungo misurare ;
char * fnome = 'File_C.txt' ;
misurare = lunghezza file ( nessun file ( aperto ( nome, 'rb' ) ) ) ;
printf ( 'La dimensione del file = %ld byte. \N ' , misurare ) ;

ritorno 0 ;
}


La dimensione del file C_File.txt in byte è ottenuto da questo codice utilizzando la libreria di gestione file di Windows. Quando viene fornito il descrittore di file di un file aperto, il metodo lunghezza file() restituisce la lunghezza del file in byte.

apri() apre il file in modalità binaria di sola lettura in questo codice e nessun file() restituisce il descrittore di file del file aperto. Poi, stampaf() viene utilizzato per stampare la dimensione del file. La funzione restituisce quindi 0 che indica che è stata eseguita correttamente.

Produzione


Conclusione

Ci sono diversi metodi per trovare il file dimensione di un file in byte in C , ognuno con i suoi vantaggi e svantaggi. Quattro diversi metodi sono discussi nel tutorial sopra; statistica() funzione, fstat() funzione, cerca() E ftell() funzioni, e il lunghezza file() funzione. Comprendere queste funzioni aiuterà gli utenti a trovare la dimensione di qualsiasi file sul tuo sistema.