To isté platí pre súbor, jeho operácie môžu zahŕňať úpravu súboru, vloženie údajov do súboru alebo vymazanie jedného súboru. Celá aplikácia bude zmätená, ak vývojár aplikuje operácie so súbormi nad adresármi alebo naopak.
Tento článok ilustruje prístupy na zistenie, či je poskytnutá cesta súborom alebo adresárom, a to tak, že pokryje tieto metódy:
- Metóda „statSync()“ na zistenie cesty vedie k adresáru alebo súboru
- Metóda „stat()“ na zistenie cesty vedie do adresára alebo súboru
Ako zistiť, že poskytnutá cesta je súbor alebo adresár v Node.js?
Existujú dva spôsoby, ktoré poskytuje „ fs “modul, konkrétne “ isDirectory() “ a „ isFile() “, ktorého jediným účelom je skontrolovať, či poskytnutá cesta vedie k súboru alebo adresáru. Tieto metódy sa používajú v synchrónnych aj asynchrónnych scenároch pomocou „ statSync() “ a „ stat() “ metódy. Tieto dve metódy sú uvedené nižšie na zistenie, či poskytnutá cesta vedie k súboru alebo adresáru.
Metóda 1: Metóda „statSync()“ na zistenie cesty vedie k adresáru alebo súboru
' statSync() “metóda poskytovaná spoločnosťou “ fs “ sa v podstate používa na vykonávanie synchrónnych operácií. Táto metóda v našom prípade ukladá inštanciu poskytnutej cesty iba raz. Potom priradí „ isDirectory() “ a „ isFile() ” metódy na vrátenie, či zadaná cesta vedie do adresára alebo súboru.
Pozrime sa na nižšie uvedený úryvok kódu pre praktickú implementáciu metódy „statSync()“:
konšt fsObj = vyžadovať ( 'fs' ) ;
nechajte pathFile = fsObj. statSync ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;
konzola. log ( „Je poskytnutá vedúca cesta k súboru? ' + pathFile. isFile ( ) ) ;
pathDir = fsObj. statSync ( '/Users/kahou/Documents/readlineProj' ) ;
konzola. log ( 'Je poskytnutá cesta vedie do adresára? ' + pathDir. isDirectory ( ) ) ;
Vysvetlenie vyššie uvedeného kódu je uvedené nižšie:
- Najprv importujte súbor „ fs “ a uložte jeho inštanciu do “ fsObj “premenná.
- Potom vyvolajte „ statSync() “ pomocou metódy “ fsObj ” premennej a prejdite vybranú cestu do jej zátvoriek. Uložte odkaz na túto cestu do „ pathFile “premenná.
- Ďalej priraďte „ isFile() “ metóda s “ pathFile ” a vráti boolovskú hodnotu, ktorá ukáže, či poskytnutá cesta vedie k súboru alebo nie.
- Potom znova vyvolajte „ statSync() “ a prejsť novou cestou.
- Nakoniec pripojte „ isDirectory() ” s hodnotou vrátenou funkciou “ startSync() “.
Teraz spustite aktuálny súbor pomocou nižšie uvedeného príkazu:
'node
Napríklad sme spustili súbor „app.js“:
Výstup zobrazuje hodnotu „ pravda ” znamená, že poskytnuté cesty sú pre priečinok a súbor bol zistený.
Metóda 2: Metóda „stat()“ na zistenie cesty vedie k adresáru alebo súboru
Ďalšia metóda, ktorá dokonale funguje pre asynchrónne prostredie, je známa ako „ stat() “, ktorý poskytuje „ fs “. Používa tiež to isté „ isFile() “ a „ isDirectory() “, ale vďaka svojej asynchrónnej povahe môže byť jedna cesta odovzdaná obom metódam. Má dva parametre, prvý ukladá cestu a druhý je funkcia spätného volania, ktorá vykonáva niektoré operácie cez poskytnutú cestu:
konšt fsObj = vyžadovať ( 'fs' ) ,testPath = '/Users/kahou/Documents/readlineProj'
// Použite metódu stat().
fsObj. stat ( testPath , ( chyba , statObj ) => {
ak ( ! chyba ) {
ak ( statObj. isFile ( ) ) {
konzola. log ( ' \n Áno! Poskytnutá cesta vedie k súboru? ' ) ;
}
inak ak ( statObj. isDirectory ( ) ) {
konzola. log ( ' \n Áno! Poskytnutá cesta vedie do adresára? ' ) ;
}
}
inak
hodiť chyba ;
} ) ;
Vysvetlenie vyššie uvedeného kódu je uvedené nižšie:
- Najprv importujte súbor „ fs “ a uložte jeho inštanciu do “ fsObj “premenná. Vytvor ' testPath ” premenná, ktorá ukladá cestu poskytnutú testerom.
- Teraz vyvolajte „ stat() “ a prejsť metódou “ testPath ” ako prvý parameter a funkcia spätného volania ako druhý parameter.
- Funkcia spätného volania obsahuje „ chyba “ ako prvý parameter a “ statObj “ ako druhý. ' chyba ” obsahuje chyby, ktoré vzniknú počas vykonávania a “startObj” má zadanú cestu.
- Vo vnútri funkcie použite „ ak “, ktorý sa spustí, ak sa nenájde žiadna chyba.
- ' vnorené ak „príkazy sa používajú na priradenie „ isFile() “ a „ isDirectory() “metódy s “ statObj “.
- Ak metódy vrátia „ pravda ” až potom sa táto sekcia vykoná a podľa toho sa zobrazia správy o úspechu.
Po vykonaní vyššie uvedeného skriptu sa terminál zobrazí takto:
Ako vidíte, poskytnutá cesta je teraz zistená a potvrdzuje, že poskytnutá cesta vedie do adresára.
Záver
Ak chcete zistiť, či poskytnutá cesta je cestou k adresáru alebo súboru v NodeJs, metódy „ isFile() “ a „ isDirectory “ sa používajú. Cesty, ktoré sú prístupné týmito metódami, poskytuje „ statSync() “ a „ stat() “metódy “ fs Modul NodeJs. Tieto metódy ukladajú poskytnuté cesty synchrónnym a asynchrónnym spôsobom. Tento blog vysvetľuje postup na zistenie, či poskytnutá cesta vedie k súboru alebo adresáru v NodeJS.