Hvordan oppdage at gitt bane er en fil eller katalog i Node.js?

Hvordan Oppdage At Gitt Bane Er En Fil Eller Katalog I Node Js



Å oppdage filenheten er viktig, spesielt når applikasjonene dine tar for seg administrasjon av en fil eller lagrer brukerdata i bestemte kataloger. Fordi enkeltkataloger kan inneholde flere filer, innebærer operasjonen som kan brukes på den, flytting av filer til en annen katalog eller sletting av alle eksisterende filer.

Det samme gjelder en fil, dens operasjoner kan inkludere å endre filen, sette inn data i filen eller slette en enkelt. Hele applikasjonen vil bli ødelagt hvis utvikleren bruker filoperasjoner over kataloger eller omvendt.

Denne artikkelen vil illustrere tilnærmingene for å oppdage om den angitte banen er en fil eller en katalog ved å dekke disse metodene:







Hvordan oppdage at gitt bane er en fil eller katalog i Node.js?

Det er to metoder som tilbys av ' fs ' modul nemlig ' isDirectory() ' og ' isFile() ” som har det eneste formålet å sjekke om den angitte banen fører til en fil eller katalog. Disse metodene brukes i både synkrone og asynkrone scenarier ved å bruke ' statSync() ' og ' stat() 'metoder. Disse to metodene er demonstrert nedenfor for å oppdage om den angitte banen fører til en fil eller katalog.



Metode 1: 'statSync()'-metoden for å oppdage banen som fører til katalogen eller filen

« statSync() ” metode levert av ' fs ' modul brukes i utgangspunktet til å utføre synkrone operasjoner. Denne metoden i vårt tilfelle lagrer forekomsten av den angitte banen bare én gang. Deretter tildeler den ' isDirectory() ' og ' isFile() ” metoder for å returnere om den angitte banen fører til en katalog eller fil.



La oss besøke kodebiten nedenfor for den praktiske implementeringen av 'statSync()'-metoden:





konst fsObj = krever ( 'fs' ) ;

la pathFile = fsObj. statSync ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

konsoll. Logg ( 'Leder vei til en fil? ' + banefil. isFile ( ) ) ;

stiDir = fsObj. statSync ( '/Users/kahou/Documents/readlineProj' ) ;

konsoll. Logg ( 'Leder vei til en katalog? ' + stiDir. isDirectory ( ) ) ;

Forklaringen for koden ovenfor er angitt nedenfor:

  • Først importerer du ' fs '-modulen og lagre forekomsten i en ' fsObj variabel.
  • Deretter påkaller du ' statSync() '-metoden ved å bruke ' fsObj ” variabel og passerer den valgte banen innenfor parentesen. Lagre referansen til denne banen i ' banefil variabel.
  • Deretter tildeler du ' isFile() '-metoden med ' banefil ” for å returnere en boolsk verdi som vil vise om den angitte banen fører til en fil eller ikke.
  • Etter det, påkall igjen ' statSync() ”-metoden og passerer den nye veien.
  • Til slutt legger du ved ' isDirectory() '-metoden med verdien returnert av ' startSync() 'metoden.

Kjør nå gjeldende fil ved å bruke kommandoen nedenfor:



'node '

For eksempel har vi utført «app.js»-filen:

Utgangen viser verdien av ' ekte ' returneres betyr at de angitte banene er for mappen og filen har blitt oppdaget.

Metode 2: 'stat()'-metoden for å oppdage banen som fører til katalogen eller filen

En annen metode som fungerer perfekt for det asynkrone miljøet er kjent som ' stat() ' metode som er gitt av ' fs ' modul. Den bruker også det samme ' isFile() ' og ' isDirectory() ”-metoder, men på grunn av dens asynkrone natur, kan enkeltveien overføres til begge metodene. Den har to parametere, den første lagrer banen og den andre er en tilbakeringingsfunksjon som utfører noen operasjoner over den angitte banen:

konst fsObj = krever ( 'fs' ) ,
testPath = '/Users/kahou/Documents/readlineProj'

// Bruk stat()-metoden
fsObj. stat ( testPath , ( feil , statObj ) => {
hvis ( ! feil ) {
hvis ( statObj. isFile ( ) ) {
konsoll. Logg ( ' \n Ja! Forutsatt bane fører til en fil? ' ) ;
}
ellers hvis ( statObj. isDirectory ( ) ) {
konsoll. Logg ( ' \n Ja! Forutsatt bane fører til en katalog? ' ) ;
}
}
ellers
kaste feil ;
} ) ;

Forklaringen for koden ovenfor er vist nedenfor:

  • Først importerer du ' fs '-modul og lagre forekomsten i en ' fsObj variabel. Lage en ' testPath variabel som lagrer den angitte banen av testeren.
  • Påkall nå ' stat() '-metoden og bestå ' testPath ” som den første parameteren og en tilbakeringingsfunksjon som den andre parameteren.
  • Tilbakeringingsfunksjonen inneholder ' feil ' som den første parameteren og ' statObj ' som den andre. « feil ' inneholder feil som oppstår under kjøring og 'startObj' har den angitte banen.
  • Inne i funksjonen, bruk ' hvis ”-setning som kjører hvis ingen feil blir funnet.
  • « nestet hvis ' uttalelser brukes til å tilordne ' isFile() ' og ' isDirectory() ' metoder med ' statObj '.
  • Hvis metodene returnerer ' ekte ” først da blir den delen utført og viser suksessmeldingene deretter.

Etter å ha utført skriptet ovenfor, ser terminalen slik ut:

Som du kan se er den angitte banen nå oppdaget og bekrefter at den angitte banen fører til en katalog.

Konklusjon

For å oppdage om den angitte banen er banen til en katalog eller fil i NodeJs, må metodene for ' isFile() ' og ' isDirectory ' er brukt. Stiene som er tilgjengelige med disse metodene er gitt av ' statSync() ' og ' stat() ' metoder for ' fs ” NodeJs-modul. Disse metodene lagrer de oppgitte banene på henholdsvis synkron og asynkron måte. Denne bloggen har forklart prosedyren for å oppdage om den angitte banen fører til en fil eller katalog i NodeJS.