Jak wykryć podaną ścieżkę do pliku lub katalogu w Node.js?

Jak Wykryc Podana Sciezke Do Pliku Lub Katalogu W Node Js



Wykrywanie jednostki pliku jest ważne szczególnie wtedy, gdy aplikacje zajmują się zarządzaniem plikiem lub przechowują dane użytkownika w określonych katalogach. Ponieważ pojedyncze katalogi mogą przechowywać kilka plików, operacja, którą można na nich zastosować, polega na przeniesieniu plików do innego katalogu lub usunięciu wszystkich znajdujących się tam plików.

To samo dotyczy pliku, jego operacje mogą obejmować modyfikację pliku, wstawienie danych do pliku lub usunięcie pojedynczego. Cała aplikacja zostanie zepsuta, jeśli programista zastosuje operacje na plikach na katalogach i odwrotnie.

W tym artykule przedstawiono podejścia do wykrywania, czy podana ścieżka jest plikiem czy katalogiem, omawiając następujące metody:







Jak wykryć podaną ścieżkę do pliku lub katalogu w Node.js?

Istnieją dwie metody oferowane przez „ fs moduł, a mianowicie „ isDirectory() ' I ' isFile() ”, którego jedynym celem jest sprawdzenie, czy podana ścieżka prowadzi do pliku lub katalogu. Metody te są stosowane zarówno w scenariuszach synchronicznych, jak i asynchronicznych, przy użyciu „ statSync() ' I ' statystyki() metody. Poniżej zademonstrowano te dwie metody umożliwiające wykrycie, czy podana ścieżka prowadzi do pliku lub katalogu.



Metoda 1: Metoda „statSync()” służąca do wykrywania ścieżki prowadzącej do katalogu lub pliku

statSync() ” metoda dostarczona przez „ fs moduł jest zasadniczo używany do wykonywania operacji synchronicznych. Metoda ta w naszym przypadku przechowuje instancję podanej ścieżki tylko jeden raz. Następnie przypisuje „ isDirectory() ' I ' isFile() ” metody zwracające informację, czy określona ścieżka prowadzi do katalogu lub pliku.



Przyjrzyjmy się poniższemu fragmentowi kodu, aby zapoznać się z praktyczną implementacją metody „statSync()”:





konst fsObj = wymagać ( „fs” ) ;

niech ścieżkaPlik = fsObj. statSync ( „/Users/kahou/Documents/readlineProj/mcu.db” ) ;

konsola. dziennik ( 'Czy ​​podana jest ścieżka prowadząca do pliku? ' + plik ścieżki. jestPlik ( ) ) ;

ścieżkaDir = fsObj. statSync ( „/Użytkownicy/kahou/Dokumenty/readlineProj” ) ;

konsola. dziennik ( 'Czy ​​podana ścieżka prowadzi do katalogu? ' + ścieżkaDir. jestKatalog ( ) ) ;

Poniżej znajduje się wyjaśnienie powyższego kodu:

  • Najpierw zaimportuj „ fs ” i zapisz jego instancję w „ fsObj ' zmienny.
  • Następnie wywołaj opcję „ statSync() ” metodą „ fsObj ” i przekaż wybraną ścieżkę w jej nawiasie. Zapisz odniesienie do tej ścieżki wewnątrz „ plik ścieżki ' zmienny.
  • Następnie przypisz „ isFile() ” metodą „ plik ścieżki ”, aby zwrócić wartość logiczną, która pokaże, czy podana ścieżka prowadzi do pliku, czy nie.
  • Następnie ponownie wywołaj opcję „ statSync() ” i podaj nową ścieżkę.
  • Na koniec dołącz „ isDirectory() ” z wartością zwróconą przez metodę „ rozpocznijSync() ' metoda.

Teraz wykonaj bieżący plik za pomocą poniższego polecenia:



„węzeł

Na przykład wykonaliśmy plik „app.js”:

Dane wyjściowe pokazują wartość „ PRAWDA ” oznacza, że ​​podane ścieżki dotyczą folderu i plik został wykryty.

Metoda 2: Metoda „stat()” służąca do wykrywania ścieżki prowadzącej do katalogu lub pliku

Inna metoda, która doskonale sprawdza się w środowisku asynchronicznym, znana jest jako „ statystyki() ” metoda dostarczana przez „ fs moduł. Używa również tego samego „ isFile() ' I ' isDirectory() ”, ale ze względu na asynchroniczną naturę pojedynczą ścieżkę można przekazać do obu metod. Ma dwa parametry, pierwszy przechowuje ścieżkę, a drugi to funkcja wywołania zwrotnego, która wykonuje pewne operacje na podanej ścieżce:

konst fsObj = wymagać ( „fs” ) ,
Ścieżka testowa = „/Użytkownicy/kahou/Dokumenty/readlineProj”

// Użyj metody stat().
fsObj. statystyka ( Ścieżka testowa , ( błąd , statObj ) => {
Jeśli ( ! błąd ) {
Jeśli ( statObj. jestPlik ( ) ) {
konsola. dziennik ( ' \N Tak! Podana ścieżka prowadzi do pliku? ' ) ;
}
w przeciwnym razie Jeśli ( statObj. jestKatalog ( ) ) {
konsola. dziennik ( ' \N Tak! Podana ścieżka prowadzi do katalogu? ' ) ;
}
}
w przeciwnym razie
rzucić błąd ;
} ) ;

Poniżej znajduje się wyjaśnienie powyższego kodu:

  • Najpierw zaimportuj „ fs ” i zapisz jego instancję w „ fsObj ' zmienny. Stwórz ' Ścieżka testowa ” zmienna przechowująca ścieżkę podaną przez testera.
  • Teraz wywołaj opcję „ statystyki() ” i przekazać metodę „ Ścieżka testowa ” jako pierwszy parametr i funkcja wywołania zwrotnego jako drugi parametr.
  • Funkcja wywołania zwrotnego zawiera „ błąd ” jako pierwszy parametr i „ statObj ” jako drugi. „ błąd ” zawiera błędy powstałe podczas wykonywania, a „startObj” ma podaną ścieżkę.
  • Wewnątrz tej funkcji użyj opcji „ Jeśli ”, która jest wykonywana, jeśli nie zostanie znaleziony żaden błąd.
  • zagnieżdżone, jeśli ” instrukcje służą do przypisania „ isFile() ' I ' isDirectory() ” metody z „ statObj ”.
  • Jeśli metody zwrócą „ PRAWDA ” dopiero wtedy ta sekcja zostanie wykonana i wyświetli odpowiednie komunikaty o powodzeniu.

Po wykonaniu powyższego skryptu terminal wygląda następująco:

Jak widać, podana ścieżka została teraz wykryta i potwierdza, że ​​podana ścieżka prowadzi do katalogu.

Wniosek

Aby wykryć, czy podana ścieżka jest ścieżką do katalogu lub pliku w NodeJs, metody „ isFile() ' I ' jestKatalog ' są używane. Ścieżki dostępne tymi metodami są dostarczane przez „ statSync() ' I ' statystyki() „metody” fs Moduł NodeJs. Metody te przechowują podane ścieżki odpowiednio w sposób synchroniczny i asynchroniczny. W tym blogu wyjaśniono procedurę wykrywania, czy podana ścieżka prowadzi do pliku lub katalogu w NodeJS.