Raskeste måte å sjekke om en fil eksisterer ved hjelp av standard C ++

Raskeste måte å sjekke om en fil eksisterer ved hjelp av standard C ++
Kontroller om filer eksisterer Å bruke standard C ++ er en viktig oppgave for utviklere som jobber med applikasjoner relatert til filer og kataloger. Før du overfører data til disken eller prøver å overskrive en eksisterende fil, og bekrefte om Filen eksisterer er viktig. Avhengig av hva utvikleren prøver å oppnå, er det en rekke måter å sjekke om en Filen eksisterer. Denne artikkelen vil lære deg videre om den.

Hvordan du sjekker filens eksistens i standard c++

Det er mange metoder for å finne ut om en fil er der, for eksempel følgende:

  • Bruke stat () -funksjon
  • Bruker std :: ifstream
  • Ved hjelp av fopen () -funksjon

1: Hvordan sjekke filens eksistens i C ++ ved hjelp av STAT () -funksjon

De stat () Metoden er den mest effektive og sikre teknikken for å bekrefte filens eksistens. De SYS/STAT.h Headerfil har en forhåndsdefinert funksjon som heter stat. Funksjonen aksepterer en bane og en struktur som parametere, der filen eller katalogen tilknyttet metadata, om noen, vil bli holdt. Funksjonen returnerer resultatet av 0 hvis ruten er en legitim. Vi ville se etter eksistens av filen som et eksempel:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

const char* file = "c_file.tekst";
struct Stat SB;
if (stat (fil, & sb) == 0)
cout << "This file exists";
ellers
cout << "The file does not exists!";
retur 0;

Først lagrer filpekervariabelen filens bane. Etter det, stat Hodefilens format brukes til å initialisere den tomme strukturen. Metadata ville bli frelst på denne måten. De Stat -funksjon kalles da inne i IF -tilstanden. Resultatet ville være 0 hvis banen er riktig, noe som betyr at filen eller katalogen eksisterte; Ellers ville det være ikke-null.

Produksjon

Merk: Sørg for å erstatte filnavnet “C_file.tekst" med filnavnet du vil sjekke.

2: Hvordan sjekke eksistensen

Bruke C ++ standard bibliotekfunksjon std :: ifstream er en annen metode for å avgjøre om en fil er til stede. Et strømobjekt som kan brukes til å lese filen returneres av denne funksjonen, som aksepterer en bane som en inngang. For å bruke denne funksjonen, ville utvikleren gi banen og navnet på filen til konstruktøren til std :: ifstream klasse. Resultatet av å gjøre dette er enten filen som blir åpnet av konstruktøren, eller et unntak som blir kastet. Som et resultat, hvis filen åpnes, kan utvikleren anta at den er til stede.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
ifstream file ("File_name.tekst");
if (fil.flink())

std :: cout << "file exists." << endl;

ellers

std :: cout << "file doesn't exist." << endl;

Starter med hoved() metode, et objekt av ifstream Klasse som heter fil opprettes for å lese målfilen senere. Når du påkaller den åpne funksjonen på filobjektet, blir destinasjonsfilnavnet deretter levert som et argument. Denne linjen vil prøve å åpne filen i skrivebeskyttet modus.

Siden en fil bare kan åpnes hvis den fysisk eksisterer der og ikke kan nås ellers å få tilgang til. Vi bruker indirekte den åpne () metoden for å bekrefte Filens eksistens. Deretter ved hjelp av IF-ELSE-betingede utsagn, bestemmer vi om filobjektet har åpnet filen eller ikke; Hvis det har det, betyr dette at den ligger på den spesifiserte banen, og vi viser en suksessmelding; Ellers produserer vi en feilmelding.

Produksjon

3: Hvordan sjekke filens eksistens i C ++ ved hjelp av FOPEN () -funksjonen

Den tredje måten å sjekke om a Filen eksisterer er å bruke C ++ -funksjonen fopen (). De fopen () Metoden oppretter en strøm og åpner filen som er angitt med filnavn. Modusvariabelen er en tegnstreng som indikerer hva slags filtilgang som er bedt om. Én posisjonsparameter går foran valgfrie søkeordargumenter i modusvariabelen.

Vi kan spare returverdien fra utførelsen av fopen () i pekerfilen når den er ferdig. Hvis filåpningen var vellykket, funksjonen fopen (), som viser om filen tidligere hadde åpnet, vil produsere en filstrømpeker som refererer til målfilen. Hvis det ikke lyktes, noe som indikerer om filen allerede hadde vært, vil den returnere null. Hvis filreferansen ikke er null, vet vi at filen er til stede og kan gi en suksessmelding; Ellers vil en feilmelding bli sendt.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

Fil* fil;
fil = fopen ("c_file.txt "," r ");
if (fil!= Null)

cout << "File exists" << endl;

ellers

cout << "File does not exists" << endl;

return 0;

For å lese filen bygger vi en peker til filklassen som starter fra Main () metode. Deretter bruker vi argumentene “C_file.tekst" og “R” For å definere målfilen og handlingen vi ønsker å utføre på den når vi utfører fopen () metode. 'r' indikerer at vi vil lese filen.

Produksjon

Konklusjon

Det er forskjellige C ++ -funksjoner for å sjekke om det eksisterer en fil, som er Stat, std :: ifstream og fopen. Av de tre metodene, stat () Funksjon er den raskeste og mest pålitelige måten å sjekke eksistens på filer på. Mens andre to funksjoner også er nyttige for å sjekke filens eksistens. Derfor bør utviklere vurdere å bruke disse funksjonene for optimal ytelse og pålitelighet når de sjekker for fileksistens.