Πώς να βρείτε το μέγεθος ενός αρχείου στον προγραμματισμό C

Pos Na Breite To Megethos Enos Archeiou Ston Programmatismo C



Είστε νέος στον προγραμματισμό C και ψάχνετε τρόπο να βρείτε το μέγεθος ενός αρχείου; Πηγαίνετε πουθενά αλλού! Σε αυτόν τον οδηγό, θα μάθετε τη διαδικασία εύρεσης του μεγέθους ενός αρχείου στον προγραμματισμό C. Ο αριθμός των byte που χρησιμοποιούνται για τη διατήρηση των δεδομένων μέσα σε ένα αρχείο αναφέρεται ως το μέγεθος του αρχείου. Γνωρίζοντας το μέγεθος του αρχείου, μπορείτε να εκτελέσετε διάφορες λειτουργίες χειρισμού αρχείων, όπως αντιγραφή, ανάγνωση ή εγγραφή.

Μέσω των οδηγιών βήμα προς βήμα που αναφέρονται σε αυτό το σεμινάριο και με απλά παραδείγματα κώδικα, μπορείτε να βρείτε γρήγορα το μέγεθος οποιουδήποτε αρχείου.







Βρείτε το μέγεθος ενός αρχείου στον προγραμματισμό C

Υπάρχουν διάφοροι τρόποι για να βρείτε το μέγεθος ενός αρχείου σε C που αναφέρονται παρακάτω.



1: Χρήση της συνάρτησης stat().

Στο C, η πιο απλή μέθοδος για να βρείτε το μέγεθος ενός αρχείου είναι να χρησιμοποιήσετε το stat() λειτουργία κλήσης συστήματος. ο stat() Η λειτουργία ανακτά πληροφορίες κατάστασης αρχείου και τις αποθηκεύει σε μια δομή. Ένα από τα μέλη αυτής της δομής είναι st_size , το οποίο δίνει το μέγεθος του αρχείου σε byte. Αυτή η μέθοδος αποφεύγει τη μη αυτόματη μετακίνηση του δείκτη του αρχείου, καθιστώντας τον πιο εύκολο στη χρήση και λιγότερο επιρρεπή σε σφάλματα.



#include
#include

int main ( )
{
struct stat st;
μακρύς Μέγεθος ;
αν ( stat ( 'C_File.txt' , & αγ ) == 0 )
{
Μέγεθος = st.st_size;
printf ( 'Το μέγεθος του αρχείου είναι %ld byte. \n ' , Μέγεθος ) ;
}
ΕΠΙΣΤΡΟΦΗ 0 ;
}


Αυτός ο κώδικας ανακτά το μέγεθος ενός αρχείου που ονομάζεται C_File.txt χρησιμοποιώντας την stat() μέθοδος από το βιβλιοθήκη. ο st_size στοιχείο του struct stat, στο οποίο η συνάρτηση διατηρεί τις πληροφορίες σχετικά με το αρχείο και μας επιτρέπει να βρούμε το μέγεθος του αρχείου. Το μέγεθος του αρχείου διατηρείται στο μεταβλητό μέγεθος και στη συνέχεια printf() χρησιμοποιείται για την εκτύπωση του μεγέθους στην κονσόλα μαζί με ένα μήνυμα. Πριν επιχειρήσετε να αποκτήσετε πρόσβαση στο st_size ιδιοκτησία, η δήλωση if επαληθεύει ότι η stat() Η κλήση συνάρτησης ήταν επιτυχής. Στη συνέχεια, ο κωδικός επιστρέφει 0 για να δείξει ότι εκτελέστηκε με επιτυχία.





Παραγωγή


2: Χρήση της συνάρτησης fstat().

Μια άλλη λειτουργία παρόμοια με stat() είναι το fstat() συνάρτηση, η οποία είναι ισοδύναμη με stat() αλλά λειτουργεί σε ανοιχτό αρχείο αντί για όνομα αρχείου. ο fstat() Η λειτουργία ανακτά πληροφορίες σχετικά με το ανοιχτό αρχείο που περιγράφεται από το περιγραφέας αρχείου πέρασε σε αυτό. Μια αναφορά σε ένα ανοιχτό αρχείο αντιπροσωπεύεται από τον ακέραιο περιγραφέας αρχείου . Ομοίως με stat(), fstat() επιστρέφει τις πληροφορίες κατάστασης σχετικά με το αρχείο που παρέχεται, συμπεριλαμβανομένου του μεγέθους του σε byte.



#include
#include
#include

int main ( ) {
int fd?
struct stat st;
fd = ανοιχτό ( 'C_File.txt' , O_RDONLY ) ;
αν ( κατάσταση ( fd, & αγ ) == - 1 ) {
printf ( 'Σφάλμα λήψης πληροφοριών αρχείου. \n ' ) ;
ΕΠΙΣΤΡΟΦΗ 1 ;
}
printf ( 'Το μέγεθος του αρχείου είναι %ld byte. \n ' , st.st_size ) ;
Κλείσε ( fd ) ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}


Στον παραπάνω κώδικα, το αρχείο ανοίγει αρχικά σε αυτό το παράδειγμα καλώντας το Άνοιξε() λειτουργία με το όνομα αρχείου και το O_RDONLY επιλογή, η οποία ανοίγει το αρχείο σε λειτουργία μόνο για ανάγνωση. ΕΝΑ περιγραφέας αρχείου (fd) επιστρέφεται από τη συνάρτηση. Μετά από αυτό, χρησιμοποιούμε το fstat() μέθοδος λήψης πληροφοριών σχετικά με το αρχείο, αποστέλλοντάς το ως δείκτη στο αγ δομή ως δεύτερη παράμετρος και ο περιγραφέας αρχείου ως πρώτο όρισμα. ο αγ δομή είναι όπου αυτή η συνάρτηση διατηρεί τις πληροφορίες του αρχείου μετά την ανάκτησή τους.

Το μέγεθος του αρχείου σε byte, το οποίο διατηρείται στο st_size μέλος του αγ δομή, στη συνέχεια εκτυπώνεται εάν δεν υπήρξε σφάλμα κατά τη χρήση του fstat() λειτουργία. Διαφορετικά, εκτυπώνει ένα μήνυμα σφάλματος.

Παραγωγή


3: Χρήση των συναρτήσεων fseek() και ftell().

Μια άλλη μέθοδος για να βρείτε το μέγεθος ενός αρχείου στον προγραμματισμό C είναι να χρησιμοποιήσετε το fseek() και ftell() λειτουργίες. ο ftell() Η μέθοδος επιστρέφει την τρέχουσα θέση του δείκτη του αρχείου, ενώ η συνάρτηση fseek() μετακινεί τον δείκτη του αρχείου σε μια δεδομένη θέση στο αρχείο. Το μέγεθος του αρχείου σε byte μπορεί να βρεθεί χρησιμοποιώντας το ftell() λειτουργία για να αποκτήσετε την τρέχουσα θέση μετά τη χρήση του fseek() λειτουργία για να μετακινήσετε τον δείκτη του αρχείου στο τέλος του αρχείου.

#include
#include

int main ( )
{
ΑΡΧΕΙΟ * fp;
μακρύς Μέγεθος ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
Μέγεθος = φέταλ ( fp ) ;
fclose ( fp ) ;
printf ( 'Το μέγεθος του αρχείου = %ld byte. \n ' , Μέγεθος ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;
}


Στον παραπάνω κώδικα, χρησιμοποιώντας το fopen() μέθοδο, η εφαρμογή ανοίγει πρώτα το C_File.txt σε δυαδική λειτουργία. ο fseek() η συνάρτηση χρησιμοποιεί στη συνέχεια το SEEK_END επιλογή για να μετακινήσετε τον δείκτη του αρχείου στο τέλος του αρχείου. Η τρέχουσα θέση του αρχείου, η οποία αντιστοιχεί στο μέγεθός του σε byte, μπορεί στη συνέχεια να βρεθεί χρησιμοποιώντας το ftell() λειτουργία. Ο κώδικας χρησιμοποιεί στη συνέχεια το fclose() μέθοδος για να κλείσετε το αρχείο μετά την εκτύπωση του μεγέθους του αρχείου στην κονσόλα.

Παραγωγή


4: Χρήση της συνάρτησης filelength().

Η επόμενη μέθοδος είναι η χρήση της βιβλιοθήκης διαχείρισης αρχείων, η οποία παρέχει πολλές λειτουργίες χειρισμού αρχείων, συμπεριλαμβανομένων συναρτήσεων προς λήψη το μέγεθος ενός αρχείου . Για παράδειγμα, η συνάρτηση μήκος αρχείου () επιστρέφει το μήκος ενός αρχείου σε byte, δεδομένου του ονόματος αρχείου του. Αυτή η λειτουργία απαιτεί το αρχείο κεφαλίδας .

Υπάρχει επίσης μια άλλη λειτουργία, _filelegthi64(), που επιστρέφει το μήκος ενός αρχείου σε byte, για αρχεία μεγαλύτερα από 4 GB. Η διαφορά μεταξύ των δύο συναρτήσεων είναι ο τύπος των επιστρεφόμενων τιμών τους, που δείχνει πόσα byte μπορεί να χειριστεί η συνάρτηση.

#include
#include

int main ( )
{
μακρύς Μέγεθος ;
απανθρακώνω * fname = 'C_File.txt' ;
Μέγεθος = μήκος αρχείου ( αριθμός αρχείου ( fopen ( fname, 'rb' ) ) ) ;
printf ( 'Το μέγεθος του αρχείου = %ld byte. \n ' , Μέγεθος ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;
}


Το μέγεθος του αρχείου C_File.txt σε byte λαμβάνεται από αυτόν τον κώδικα χρησιμοποιώντας τη βιβλιοθήκη διαχείρισης αρχείων των Windows. Όταν παρέχεται ο περιγραφέας αρχείου ενός ανοιχτού αρχείου, η μέθοδος μήκος αρχείου () επιστρέφει το μήκος του αρχείου σε byte.

fopen() ανοίγει το αρχείο σε δυαδική λειτουργία μόνο για ανάγνωση σε αυτόν τον κώδικα και αριθμός αρχείου() επιστρέφει τον περιγραφέα αρχείου του ανοιγμένου αρχείου. Επειτα, printf() χρησιμοποιείται για την εκτύπωση του μεγέθους του αρχείου. Στη συνέχεια, η συνάρτηση επιστρέφει 0 που υποδεικνύει ότι έχει εκτελεστεί με επιτυχία.

Παραγωγή


συμπέρασμα

Υπάρχουν διάφορες μέθοδοι για να βρείτε το μέγεθος αρχείου σε byte σε C , το καθένα με τα δικά του πλεονεκτήματα και μειονεκτήματα. Τέσσερις διαφορετικές μέθοδοι συζητούνται στο παραπάνω σεμινάριο. stat() λειτουργία, fstat() λειτουργία, fseek() και ftell() λειτουργίες, και το μήκος αρχείου () λειτουργία. Η κατανόηση αυτών των λειτουργιών θα βοηθήσει τους χρήστες να βρουν το μέγεθος οποιουδήποτε αρχείου στο σύστημά σας.