Kuinka löytää tiedoston koko C-ohjelmoinnissa

Kuinka Loytaa Tiedoston Koko C Ohjelmoinnissa



Oletko uusi C-ohjelmoinnissa ja etsimässä tapaa selvittää tiedoston koko? Älä mene muualle! Tässä oppaassa opit prosessin tiedoston koon löytämiseksi C-ohjelmoinnissa. Tiedoston sisällä olevien tietojen säilyttämiseen käytettyjen tavujen määrää kutsutaan tiedoston kooksi. Kun tiedät tiedostokoon, voit suorittaa erilaisia ​​tiedostonkäsittelytoimintoja, mukaan lukien kopiointi, lukeminen tai kirjoittaminen.

Tässä opetusohjelmassa mainittujen vaiheittaisten ohjeiden ja yksinkertaisten koodiesimerkkien avulla voit nopeasti löytää minkä tahansa tiedoston koon.







Etsi tiedoston koko C-ohjelmoinnista

On olemassa erilaisia ​​​​tapoja löytää alla olevan tiedoston koko C-kielellä.



1: Stat()-funktion käyttö

C:ssä yksinkertaisin tapa selvittää tiedoston koko on käyttää stat() järjestelmäkutsutoiminto. The stat() toiminto hakee tiedoston tilatiedot ja tallentaa ne rakenteeseen. Yksi tämän rakenteen jäsenistä on st_size , joka ilmoittaa tiedoston koon tavuina. Tämä menetelmä välttää tiedostoosoittimen manuaalisen siirtämisen, mikä tekee siitä helpomman käyttää ja vähemmän virhealttiita.



#include
#include

int main ( )
{
struct stat st;
pitkä koko ;
jos ( stat ( 'C_Tiedosto.txt' , & st ) == 0 )
{
koko = st.st_size;
printf ( 'Tiedoston koko on %ld tavua. \n ' , koko ) ;
}
palata 0 ;
}


Tämä koodi hakee kutsutun tiedoston koon C_Tiedosto.txt käyttämällä stat() menetelmästä kirjasto. The st_size struct stat -elementti, jossa funktio säilyttää tiedot tiedostosta ja mahdollistaa tiedoston koon selvittämisen. Tiedoston koko säilytetään muuttuvassa koossa ja sitten printf() käytetään koon tulostamiseen konsoliin viestin mukana. Ennen kuin yrität käyttää st_size ominaisuus, if-lause vahvistaa, että stat() funktiokutsu onnistui. Koodi palauttaa sitten 0:n osoittaakseen, että se suoritettiin onnistuneesti.





Lähtö


2: Fstat()-funktion käyttö

Toinen samanlainen toiminto kuin stat() on fstat() toiminto, joka vastaa stat() mutta toimii avoimessa tiedostossa tiedostonimen sijaan. The fstat() toiminto hakee tiedot avoimesta tiedostosta, jonka kuvailee tiedostokuvaaja siirtyi sille. Viittausta avoimeen tiedostoon edustaa kokonaisluku tiedostokuvaaja . Samoin kuin stat(), fstat() palauttaa toimitetun tiedoston tilatiedot, mukaan lukien sen koon tavuina.



#include
#include
#include

int main ( ) {
int fd;
struct stat st;
fd = auki ( 'C_Tiedosto.txt' , O_RDONLY ) ;
jos ( osavaltio ( fd, & st ) == - 1 ) {
printf ( 'Virhe haettaessa tiedostotietoja. \n ' ) ;
palata 1 ;
}
printf ( 'Tiedoston koko on %ld tavua. \n ' , st.st_size ) ;
kiinni ( fd ) ;
palata 0 ;
}


Yllä olevassa koodissa tiedosto avataan aluksi tässä esimerkissä kutsumalla avata() funktio tiedostonimellä ja O_RDONLY vaihtoehto, joka avaa tiedoston vain luku -tilassa. A tiedostokuvaaja (fd) funktio palauttaa. Sen jälkeen käytämme fstat() menetelmä saada tietoja tiedostosta lähettämällä se osoittimena tiedostoon st rakenne toisena parametrina ja tiedostokuvaaja ensimmäisenä argumenttina. The st rakenne on paikka, jossa tämä toiminto säilyttää tiedoston tiedot sen hakemisen jälkeen.

Tiedoston koko tavuina, joka säilytetään tiedostossa st_size jäsen st rakenne, tulostetaan sitten, jos käytössä ei ollut virhettä fstat() toiminto. Muussa tapauksessa se tulostaa virheilmoituksen.

Lähtö


3: Fseek()- ja ftell()-funktioiden käyttö

Toinen tapa löytää tiedoston koko C-ohjelmoinnissa on käyttää fseek() ja ftell() toimintoja. The ftell() menetelmä palauttaa tiedostoosoittimen nykyisen sijainnin, kun taas fseek()-funktio siirtää tiedostoosoittimen tiettyyn paikkaan tiedostossa. Tiedoston koko tavuina voidaan selvittää käyttämällä ftell() toiminto määrittää nykyisen sijainnin käytön jälkeen fseek() toiminto siirtää tiedostoosoittimen tiedoston loppuun.

#include
#include

int main ( )
{
TIEDOSTO * fp;
pitkä koko ;

fp = fopen ( 'C_Tiedosto.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
koko = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'Tiedoston koko = %ld tavua. \n ' , koko ) ;

palata 0 ;
}


Yllä olevassa koodissa käyttämällä fopen() menetelmällä sovellus avaa ensin C_Tiedosto.txt binääritilassa. The fseek() toiminto käyttää sitten SEEK_END vaihtoehto siirtää tiedostoosoitin tiedoston loppuun. Tiedoston nykyinen sijainti, joka vastaa sen kokoa tavuina, voidaan sitten löytää käyttämällä ftell() toiminto. Koodi käyttää sitten fclose() tapa sulkea tiedosto sen jälkeen, kun tiedoston koko on tulostettu konsoliin.

Lähtö


4: Filelength()-funktion käyttäminen

Seuraava tapa on käyttää tiedostonhallintakirjastoa, joka tarjoaa monia tiedostojen käsittelytoimintoja, mukaan lukien hankittavat toiminnot tiedoston kokoa . Esimerkiksi funktio tiedoston pituus () palauttaa tiedoston pituuden tavuina sen tiedostonimen perusteella. Tämä toiminto vaatii otsikkotiedoston .

On myös toinen toiminto, _filengthi64(), joka palauttaa tiedoston pituuden tavuina yli 4 Gt:n tiedostoille. Näiden kahden funktion ero on niiden palautusarvojen tyyppi, joka osoittaa kuinka monta tavua funktio pystyy käsittelemään.

#include
#include

int main ( )
{
pitkä koko ;
hiiltyä * fname = 'C_Tiedosto.txt' ;
koko = tiedoston pituus ( tiedosto nro ( fopen ( fname, 'rb' ) ) ) ;
printf ( 'Tiedoston koko = %ld tavua. \n ' , koko ) ;

palata 0 ;
}


Tiedoston koko C_Tiedosto.txt tavuissa saadaan tällä koodilla Windowsin tiedostonhallintakirjaston avulla. Kun avatun tiedoston tiedostokuvaaja annetaan, menetelmä tiedoston pituus () palauttaa tiedoston pituuden tavuina.

fopen() avaa tiedoston vain luku -binaaritilassa tässä koodissa, ja tiedosto nro() palauttaa avatun tiedoston tiedostokuvaajan. Sitten, printf() käytetään tiedostokoon tulostamiseen. Funktio palauttaa sitten 0:n, joka osoittaa, että se on suoritettu onnistuneesti.

Lähtö


Johtopäätös

On olemassa useita tapoja löytää tiedoston koko tavuina C:ssä , jokaisella on omat etunsa ja haittansa. Yllä olevassa opetusohjelmassa käsitellään neljää eri menetelmää; stat() toiminto, fstat() toiminto, fseek() ja ftell() toiminnot ja filelength() toiminto. Näiden toimintojen ymmärtäminen auttaa käyttäjiä löytämään minkä tahansa järjestelmässäsi olevan tiedoston koon.