Kuinka havaita, että annettu polku on tiedosto tai hakemisto Node.js:ssä?

Kuinka Havaita Etta Annettu Polku On Tiedosto Tai Hakemisto Node Js Ssa



Tiedostokokonaisuuden tunnistaminen on tärkeää varsinkin silloin, kun sovelluksesi käsittelevät tiedoston hallintaa tai tallentaa käyttäjätietoja tiettyihin hakemistoihin. Koska yksittäiset hakemistot voivat sisältää useita tiedostoja, siihen mahdollisesti sovellettava toimenpide sisältää tiedostojen siirtämisen toiseen hakemistoon tai kaikkien olemassa olevien tiedostojen poistamisen.

Sama pätee tiedostoon, sen toimintoihin voi kuulua tiedoston muokkaaminen, tietojen lisääminen tiedostoon tai yksittäisen tiedoston poistaminen. Koko sovellus menee sekaisin, jos kehittäjä käyttää tiedostotoimintoja hakemistoissa tai päinvastoin.

Tämä artikkeli havainnollistaa tapoja havaita, onko annettu polku tiedosto vai hakemisto kattamalla seuraavat menetelmät:







Kuinka havaita, että annettu polku on tiedosto tai hakemisto Node.js:ssä?

'' tarjoaa kaksi tapaa fs ' moduuli nimittäin ' isDirectory() ' ja ' isFile() ', jonka ainoana tarkoituksena on tarkistaa, johtaako annettu polku tiedostoon tai hakemistoon. Näitä menetelmiä käytetään sekä synkronisissa että asynkronisissa skenaarioissa käyttämällä ' statSync() ' ja ' stat() ”menetelmiä. Nämä kaksi menetelmää on esitelty alla, jotta voidaan havaita, johtaako annettu polku tiedostoon vai hakemistoon.



Tapa 1: 'statSync()' -menetelmä hakemistoon tai tiedostoon johtavan polun tunnistamiseksi

' statSync() ' -menetelmän tarjoama ' fs ” moduuli käytetään periaatteessa synkronisten toimintojen suorittamiseen. Tämä menetelmä meidän tapauksessamme tallentaa annetun polun esiintymän vain kerran. Sitten se määrittää ' isDirectory() ' ja ' isFile() ' -menetelmiä palauttamaan, johtaako määritetty polku hakemistoon vai tiedostoon.



Katsotaanpa alla olevaa koodinpätkää 'statSync()' -menetelmän käytännön toteutuksessa:





konst fsObj = vaatia ( 'fs' ) ;

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

konsoli. Hirsi ( 'Onko annettu polkujohdot tiedostoon? ' + polkutiedosto. isFile ( ) ) ;

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

konsoli. Hirsi ( 'Onko annettu polku johtaa hakemistoon? ' + polkuDir. isDirectory ( ) ) ;

Selitys yllä annetulle koodille on alla:

  • Tuo ensin ' fs ' -moduuli ja tallenna sen ilmentymä ' fsObj ”muuttuja.
  • Kutsu sitten ' statSync() ' menetelmällä ' fsObj ”-muuttuja ja ohita valittu polku sen suluissa. Tallenna tämän polun viite ' polkutiedosto ”muuttuja.
  • Määritä seuraavaksi ' isFile() ' menetelmällä ' polkutiedosto ' palauttaa loogisen arvon, joka näyttää, johtaako annettu polku tiedostoon vai ei.
  • Tämän jälkeen kutsu uudelleen ' statSync() ”-menetelmää ja kulkea uusi polku.
  • Liitä lopuksi ' isDirectory() ' -menetelmä, jonka arvo palauttaa ' startSync() ”menetelmä.

Suorita nyt nykyinen tiedosto käyttämällä alla olevaa komentoa:



'solmu '

Olemme esimerkiksi suorittaneet 'app.js'-tiedoston:

Tulos näyttää arvon ' totta ' palautetaan tarkoittaa, että annetut polut ovat kansiolle ja tiedosto on havaittu.

Tapa 2: 'stat()' -menetelmä hakemistoon tai tiedostoon johtavan polun havaitsemiseksi

Toinen menetelmä, joka toimii täydellisesti asynkronisessa ympäristössä, tunnetaan nimellä ' stat() menetelmä, jonka tarjoaa fs ” moduuli. Se käyttää myös samaa ' isFile() ' ja ' isDirectory() ” -menetelmiä, mutta sen asynkronisuuden vuoksi yksi polku voidaan välittää molemmille menetelmille. Siinä on kaksi parametria, joista ensimmäinen on tallennuspolku ja toinen on takaisinsoittotoiminto, joka suorittaa joitain toimintoja annetun polun kautta:

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

// Käytä stat()-menetelmää
fsObj. stat ( testPath , ( virhe , statObj ) => {
jos ( ! virhe ) {
jos ( statObj. isFile ( ) ) {
konsoli. Hirsi ( ' \n Joo! Edellyttäen, että polku johtaa tiedostoon? ' ) ;
}
muu jos ( statObj. isDirectory ( ) ) {
konsoli. Hirsi ( ' \n Joo! Edellyttäen, että polku johtaa hakemistoon? ' ) ;
}
}
muu
heittää virhe ;
} ) ;

Yllä olevan koodin selitys näkyy alla:

  • Tuo ensin ' fs ' -moduuli ja tallenna sen ilmentymä ' fsObj ”muuttuja. Luo ' testPath ”-muuttuja, joka tallentaa testaajan antaman polun.
  • Kutsu nyt ' stat() ' -menetelmää ja välitä ' testPath ” ensimmäisenä parametrina ja takaisinsoittotoiminto toisena parametrina.
  • Takaisinsoittotoiminto sisältää ' virhe ' ensimmäisenä parametrina ja ' statObj ”toisena. ' virhe ' sisältää suorituksen aikana ilmeneviä virheitä ja 'startObj' sisältää polun.
  • Käytä toiminnon sisällä ' jos ”-lause, joka suoritetaan, jos virhettä ei löydy.
  • ' sisäkkäinen jos '-lauseita käytetään määrittämään ' isFile() ' ja ' isDirectory() ' menetelmät ' statObj ”.
  • Jos menetelmät palauttavat ' totta ” vasta sitten kyseinen osio suoritetaan ja näyttää onnistumisviestit vastaavasti.

Yllä olevan skriptin suorittamisen jälkeen pääte näyttää tältä:

Kuten näet, annettu polku on nyt havaittu ja vahvistaa, että annettu polku johtaa hakemistoon.

Johtopäätös

Sen havaitsemiseksi, onko annettu polku NodeJ:n hakemiston tai tiedoston polku, menetelmät ' isFile() ' ja ' isDirectory ' käytetään. Polut, jotka ovat käytettävissä näillä menetelmillä, tarjoavat ' statSync() ' ja ' stat() 'menetelmiä' fs ”NodeJs-moduuli. Nämä menetelmät tallentavat tarjotut polut synkronisesti ja vastaavasti asynkronisesti. Tässä blogissa on selitetty menettely, jolla havaitaan, johtaako annettu polku tiedostoon tai hakemistoon NodeJS:ssä.