Jak zjistit, že poskytnutá cesta je soubor nebo adresář v Node.js?

Jak Zjistit Ze Poskytnuta Cesta Je Soubor Nebo Adresar V Node Js



Detekce entity souboru je důležitá zejména tehdy, když se vaše aplikace zabývají správou souboru nebo ukládají uživatelská data do konkrétních adresářů. Protože jeden adresář může obsahovat několik souborů, operace, která na něj může být použita, zahrnuje přesun souborů do jiného adresáře nebo smazání všech uložených souborů.

Totéž platí se souborem, jeho operace mohou zahrnovat úpravu souboru, vložení dat do souboru nebo smazání jednoho souboru. Celá aplikace bude zmatená, pokud vývojář aplikuje operace se soubory nad adresáři nebo naopak.

Tento článek bude ilustrovat přístupy ke zjištění, zda je poskytnutá cesta souborem nebo adresářem, a to pomocí těchto metod:







Jak zjistit, že poskytnutá cesta je soubor nebo adresář v Node.js?

Existují dvě metody poskytované „ fs “modul jmenovitě” isDirectory() ' a ' isFile() “, jehož jediným účelem je zkontrolovat, zda poskytnutá cesta vede k souboru nebo adresáři. Tyto metody se používají v synchronních i asynchronních scénářích pomocí „ statSync() ' a ' stat() “ metody. Tyto dvě metody jsou uvedeny níže, jak zjistit, zda poskytnutá cesta vede k souboru nebo adresáři.



Metoda 1: Metoda „statSync()“ pro zjištění cesty vedoucí k adresáři nebo souboru

' statSync() ” metoda poskytovaná “ fs “modul se v podstatě používá k provádění synchronních operací. Tato metoda v našem případě ukládá instanci zadané cesty pouze jednou. Poté přiřadí „ isDirectory() ' a ' isFile() ” metody, které vrátí, zda zadaná cesta vede do adresáře nebo souboru.



Pojďme se podívat na níže uvedený fragment kódu pro praktickou implementaci metody „statSync()“:





konst fsObj = vyžadovat ( 'fs' ) ;

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

řídicí panel. log ( 'Je poskytnuta cesta vedoucí k souboru? ' + pathFile. isFile ( ) ) ;

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

řídicí panel. log ( 'Je poskytnuta cesta vedoucí k adresáři? ' + pathDir. isDirectory ( ) ) ;

Vysvětlení výše uvedeného kódu je uvedeno níže:

  • Nejprve importujte „ fs “ a uložte jeho instanci do “ fsObj “proměnná.
  • Poté vyvolejte „ statSync() “ pomocí metody “ fsObj ” a předejte vybranou cestu uvnitř jejích závorek. Uložte odkaz na tuto cestu uvnitř „ pathFile “proměnná.
  • Dále přiřaďte „ isFile() “ metoda s “ pathFile ” vrátit booleovskou hodnotu, která ukáže, zda zadaná cesta vede k souboru nebo ne.
  • Poté znovu vyvolejte „ statSync() “ a předejte novou cestu.
  • Nakonec připojte „ isDirectory() ” metoda s hodnotou vrácenou parametrem “ startSync() “ metoda.

Nyní spusťte aktuální soubor pomocí níže uvedeného příkazu:



'uzel '

Například jsme spustili soubor „app.js“:

Výstup zobrazuje hodnotu „ skutečný ” znamená, že poskytnuté cesty jsou pro složku a soubor byl zjištěn.

Metoda 2: Metoda „stat()“ pro zjištění cesty vedoucí k adresáři nebo souboru

Další metoda, která dokonale funguje pro asynchronní prostředí, je známá jako „ stat() “ metoda, kterou poskytuje “ fs “modul. Používá také stejné „ isFile() ' a ' isDirectory() “, ale díky své asynchronní povaze lze jedinou cestu předat oběma metodám. Má dva parametry, první ukládá cestu a druhý je funkce zpětného volání, která provádí některé operace přes zadanou cestu:

konst fsObj = vyžadovat ( 'fs' ) ,
testPath = '/Users/kahou/Documents/readlineProj'

// Použijte metodu stat().
fsObj. stat ( testPath , ( chyba , statObj ) => {
-li ( ! chyba ) {
-li ( statObj. isFile ( ) ) {
řídicí panel. log ( ' \n Ano! Zadaná cesta vede k souboru? ' ) ;
}
jiný -li ( statObj. isDirectory ( ) ) {
řídicí panel. log ( ' \n Ano! Zadaná cesta vede do adresáře? ' ) ;
}
}
jiný
házet chyba ;
} ) ;

Vysvětlení výše uvedeného kódu je uvedeno níže:

  • Nejprve importujte „ fs “ a uložte jeho instanci do “ fsObj “proměnná. Vytvořit ' testPath ” proměnná, která ukládá cestu poskytnutou testerem.
  • Nyní vyvolejte „ stat() “ a předejte “ testPath ” jako první parametr a funkce zpětného volání jako druhý parametr.
  • Funkce zpětného volání obsahuje „ chyba “ jako první parametr a “ statObj “ jako druhý. ' chyba ” obsahuje chyby, které vznikají během provádění, a „startObj“ má zadanou cestu.
  • Uvnitř funkce použijte „ -li “, který se spustí, pokud není nalezena žádná chyba.
  • ' vnořeno pokud 'příkazy se používají k přiřazení ' isFile() ' a ' isDirectory() “ metody s “ statObj “.
  • Pokud metody vrátí „ skutečný ” teprve poté se tato sekce spustí a zobrazí zprávy o úspěchu.

Po provedení výše uvedeného skriptu se terminál zobrazí takto:

Jak vidíte, zadaná cesta je nyní detekována a potvrzuje, že poskytnutá cesta vede do adresáře.

Závěr

Chcete-li zjistit, zda je poskytnutá cesta cestou k adresáři nebo souboru v NodeJs, použijte metody „ isFile() ' a ' isDirectory ' Jsou používány. Cesty, které jsou přístupné těmito metodami, jsou poskytovány „ statSync() ' a ' stat() “metody “ fs Modul NodeJs. Tyto metody ukládají poskytnuté cesty synchronním a asynchronním způsobem. Tento blog vysvětluje postup, jak zjistit, zda poskytnutá cesta vede k souboru nebo adresáři v NodeJS.