Hoe de grootte van een bestand te vinden in C-programmering

Hoe De Grootte Van Een Bestand Te Vinden In C Programmering



Ben je nieuw bij C-programmering en zoek je naar een manier om de grootte van een bestand te vinden? Ga nergens anders heen! In deze gids leert u het proces van het vinden van de grootte van een bestand in C-programmering. Het aantal bytes dat wordt gebruikt om de gegevens in een bestand te bewaren, wordt de bestandsgrootte genoemd. Door de bestandsgrootte te kennen, kunt u verschillende bestandsbewerkingen uitvoeren, waaronder kopiëren, lezen of schrijven.

Door middel van de stapsgewijze richtlijnen die in deze zelfstudie worden genoemd en eenvoudige codevoorbeelden, kunt u snel de grootte van elk bestand vinden.







Zoek de grootte van een bestand in C-programmering

Er zijn verschillende manieren om de grootte van een bestand in C hieronder te vinden.



1: De functie stat() gebruiken

In C is de eenvoudigste methode om de grootte van een bestand te achterhalen, het gebruik van de statistiek() systeem oproep functie. De statistiek() functie haalt bestandsstatusinformatie op en slaat deze op in een struct. Een van de leden van deze structuur is st_maat , wat de grootte van het bestand in bytes aangeeft. Met deze methode hoeft u de bestandsaanwijzer niet handmatig te verplaatsen, waardoor het gebruiksvriendelijker en minder foutgevoelig wordt.



#include
#include

int hoofd ( )
{
structuur stat st;
lang maat ;
als ( stat ( 'C_File.txt' , & st ) == 0 )
{
maat = st.st_maat;
printf ( 'De grootte van het bestand is %ld bytes. \N ' , maat ) ;
}
opbrengst 0 ;
}


Deze code haalt de grootte op van een bestand met de naam C_File.txt de ... gebruiken statistiek() methode uit de bibliotheek. De st_maat element van de struct stat, waarin de functie de informatie over het bestand bewaart en ons in staat stelt de bestandsgrootte te vinden. De grootte van het bestand wordt in de variabele grootte gehouden, en dan printf() wordt gebruikt om het formaat samen met een bericht naar de console af te drukken. Voordat u probeert toegang te krijgen tot de st_maat eigenschap, verifieert de if-instructie dat de statistiek() functieoproep was succesvol. De code retourneert vervolgens 0 om aan te geven dat deze met succes is uitgevoerd.





Uitgang


2: De functie fstat() gebruiken

Een andere functie vergelijkbaar met statistiek() is de vast() functie, wat gelijk is aan statistiek() maar werkt op een open bestand in plaats van een bestandsnaam. De vast() functie haalt informatie op over het open bestand beschreven door de bestandsbeschrijving eraan overgegaan. Een verwijzing naar een geopend bestand wordt weergegeven door het gehele getal bestandsbeschrijving . gelijk aan stat(), vast() retourneert de statusinformatie over het geleverde bestand, inclusief de grootte in bytes.



#include
#include
#include

int hoofd ( ) {
int fd;
structuur stat st;
f d = open ( 'C_File.txt' , ALLEEN ) ;
als ( staat ( fd, & st ) == - 1 ) {
printf ( 'Fout bij ophalen van bestandsinformatie. \N ' ) ;
opbrengst 1 ;
}
printf ( 'De grootte van het bestand is %ld bytes. \N ' , st.st_size ) ;
dichtbij ( fd ) ;
opbrengst 0 ;
}


In de bovenstaande code wordt het bestand in dit voorbeeld in eerste instantie geopend door de open() functie met de bestandsnaam en de O_RDONLY optie, waarmee het bestand in alleen-lezen modus wordt geopend. A bestandsbeschrijving (fd) wordt geretourneerd door de functie. Daarna gebruiken we de vast() methode om informatie over het bestand te verkrijgen door het als een verwijzing naar het st structuur als de tweede parameter en de bestandsdescriptor als het eerste argument. De st structuur is waar deze functie de informatie van het bestand bewaart nadat deze is opgehaald.

De grootte van het bestand in bytes, die wordt bewaard in de st_maat lid van de st structuur, wordt vervolgens afgedrukt als er geen fout is opgetreden tijdens het gebruik van de vast() functie. Anders wordt er een foutmelding afgedrukt.

Uitgang


3: De functies fseek() en ftell() gebruiken

Een andere methode om de grootte van een bestand in C-programmering te vinden, is door de fzoeken() En vertel() functies. De vertel() methode retourneert de huidige positie van de bestandswijzer, terwijl de functie fseek() de bestandswijzer naar een bepaalde plaats in het bestand verplaatst. De grootte van het bestand in bytes kan worden gevonden met behulp van de vertel() functie om de huidige positie te verwerven na gebruik van de fzoeken() functie om de bestandsaanwijzer naar het einde van het bestand te verplaatsen.

#include
#include

int hoofd ( )
{
BESTAND * fp;
lang maat ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fzoek ( fp, 0L, SEEK_END ) ;
maat = vertel ( fp ) ;
fsluiten ( fp ) ;
printf ( 'De grootte van het bestand = %ld bytes. \N ' , maat ) ;

opbrengst 0 ;
}


In de bovenstaande code, met behulp van de fopen() methode opent de toepassing eerst het C_File.txt in binaire modus. De fzoeken() functie gebruikt dan de ZOEK_END optie om de bestandsaanwijzer naar het einde van het bestand te verplaatsen. De huidige locatie van het bestand, die overeenkomt met de grootte in bytes, kan dan worden gevonden met behulp van de vertel() functie. De code gebruikt dan de fsluiten() methode om het bestand te sluiten na het afdrukken van de bestandsgrootte naar de console.

Uitgang


4: De functie filelength() gebruiken

De volgende methode is door de bibliotheek voor bestandsbeheer te gebruiken, die veel functies voor bestandsmanipulatie biedt, inclusief functies om te krijgen de grootte van een bestand . De functie bijvoorbeeld bestandslengte() geeft de lengte van een bestand in bytes, gegeven de bestandsnaam. Deze functie vereist het headerbestand .

Er is ook een andere functie, _bestandslengtei64(), dat de lengte van een bestand in bytes retourneert, voor bestanden groter dan 4 GB. Het verschil tussen de twee functies is het type van hun retourwaarden, die aangeeft hoeveel bytes de functie aankan.

#include
#include

int hoofd ( )
{
lang maat ;
char * fnaam = 'C_File.txt' ;
maat = bestandslengte ( bestandsnr ( fopen ( fnaam, 'rb' ) ) ) ;
printf ( 'De grootte van het bestand = %ld bytes. \N ' , maat ) ;

opbrengst 0 ;
}


De grootte van het bestand C_File.txt in bytes wordt verkregen door deze code met behulp van de Windows-bibliotheek voor bestandsbeheer. Wanneer de bestandsdescriptor van een geopend bestand wordt opgegeven, wordt de method bestandslengte() geeft de lengte van het bestand in bytes.

fopen() opent het bestand in alleen-lezen binaire modus in deze code, en bestandsnummer() geeft de bestandsbeschrijving van het geopende bestand terug. Dan, printf() wordt gebruikt om de bestandsgrootte af te drukken. De functie retourneert vervolgens 0, wat aangeeft dat deze met succes is uitgevoerd.

Uitgang


Conclusie

Er zijn verschillende methoden om de grootte van een bestand in bytes in C , elk met zijn eigen voor- en nadelen. In de bovenstaande tutorial worden vier verschillende methoden besproken; statistiek() functie, vast() functie, fzoeken() En vertel() functies, en de bestandslengte() functie. Als u deze functies begrijpt, kunnen gebruikers de grootte van elk bestand op uw systeem vinden.