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:
- Metoda „statSync()” służąca do wykrywania ścieżki prowadzi do katalogu lub pliku
- Metoda „stat()” służąca do wykrywania ścieżki prowadzi do katalogu lub pliku
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.