Kaip aptikti, kad pateiktas kelias yra failas arba katalogas Node.js?

Kaip Aptikti Kad Pateiktas Kelias Yra Failas Arba Katalogas Node Js



Failo objekto aptikimas yra svarbus, ypač kai jūsų programos tvarko failą arba saugo vartotojo duomenis konkrečiuose kataloguose. Kadangi pavieniuose kataloguose gali būti keli failai, jam taikoma operacija apima failų perkėlimą į kitą katalogą arba visų esamų failų ištrynimą.

Tas pats pasakytina ir apie failą, jo operacijos gali apimti failo modifikavimą, duomenų įterpimą į failą arba vieno failo ištrynimą. Visa programa bus sujaukė, jei kūrėjas taikys failų operacijas kataloguose arba atvirkščiai.

Šiame straipsnyje bus parodyta, kaip nustatyti, ar nurodytas kelias yra failas ar katalogas, naudojant šiuos metodus:







Kaip aptikti, kad pateiktas kelias yra failas arba katalogas Node.js?

Yra du būdai, kuriuos siūlo „ fs “ modulis būtent “ isDirectory() “ ir „ isFile() “, kurios vienintelis tikslas yra patikrinti, ar nurodytas kelias veda į failą ar katalogą. Šie metodai naudojami tiek sinchroniniuose, tiek asinchroniniuose scenarijuose, naudojant „ statSync() “ ir „ stat() “ metodais. Šie du metodai parodyti toliau, siekiant nustatyti, ar nurodytas kelias veda į failą ar katalogą.



1 būdas: „statSync()“ būdas aptikti kelią, vedantį į katalogą arba failą

statSync() “ pateiktą metodą “ fs “ modulis iš esmės naudojamas sinchroninėms operacijoms atlikti. Šis metodas mūsų atveju išsaugo pateikto kelio egzempliorių tik vieną kartą. Tada jis priskiria „ isDirectory() “ ir „ isFile() “ metodus, norėdami grąžinti, ar nurodytas kelias veda į katalogą ar failą.



Norėdami praktiškai įgyvendinti „statSync()“ metodą, pažiūrėkime į toliau pateiktą kodo fragmentą:





konst fsObj = reikalauti ( 'fs' ) ;

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

konsolė. žurnalas ( „Ar pateikiamas kelias į failą? “ + kelio failas. isFile ( ) ) ;

keliasDir = fsObj. statSync ( „/Users/kahou/Documents/readlineProj“ ) ;

konsolė. žurnalas ( „Ar pateikiamas kelias veda į katalogą? “ + keliasDir. isKatalogas ( ) ) ;

Aukščiau pateikto kodo paaiškinimas pateikiamas toliau:

  • Pirmiausia importuokite „ fs “ modulį ir išsaugokite jo egzempliorių „ fsObj “ kintamasis.
  • Tada iškvieskite „ statSync() “ metodas naudojant „ fsObj “ kintamąjį ir perkelkite pasirinktą kelią jo skliausteliuose. Išsaugokite šio kelio nuorodą „ kelio failas “ kintamasis.
  • Tada priskirkite „ isFile() “ metodas su „ kelio failas “ norėdami grąžinti loginę reikšmę, kuri parodys, ar nurodytas kelias veda į failą, ar ne.
  • Po to dar kartą iškvieskite „ statSync() “ metodą ir pereiti nauju keliu.
  • Galiausiai pridėkite „ isDirectory() ' metodas su reikšme, kurią grąžina ' startSync() “ metodas.

Dabar paleiskite dabartinį failą naudodami toliau pateiktą komandą:



'mazgas '

Pavyzdžiui, mes vykdėme failą „app.js“:

Išvestis rodo reikšmę ' tiesa “ reiškia, kad pateikti keliai yra aplankui ir failas buvo aptiktas.

2 būdas: „stat()“ būdas aptikti kelią, vedantį į katalogą arba failą

Kitas metodas, puikiai veikiantis asinchroninėje aplinkoje, yra žinomas kaip „ stat() “ metodas, kurį teikia „ fs “ modulis. Jis taip pat naudoja tą patį ' isFile() “ ir „ isDirectory() “ metodus, tačiau dėl jo asinchroniškumo vienas kelias gali būti perduotas abiem metodams. Jame yra du parametrai: pirmasis yra saugojimo kelias, o antrasis yra atgalinio skambinimo funkcija, kuri atlieka tam tikras operacijas nurodytu keliu:

konst fsObj = reikalauti ( 'fs' ) ,
testPath = „/Users/kahou/Documents/readlineProj“

// Naudokite stat() metodą
fsObj. stat ( testPath , ( klaida , statObj ) => {
jeigu ( ! klaida ) {
jeigu ( statObj. isFile ( ) ) {
konsolė. žurnalas ( \n Taip! Numatytas kelias veda į failą? “ ) ;
}
Kitas jeigu ( statObj. isKatalogas ( ) ) {
konsolė. žurnalas ( \n Taip! Su sąlyga, kad kelias veda į katalogą? “ ) ;
}
}
Kitas
mesti klaida ;
} ) ;

Aukščiau pateikto kodo paaiškinimas parodytas žemiau:

  • Pirmiausia importuokite „ fs “ modulį ir išsaugokite jo egzempliorių „ fsObj “ kintamasis. Sukurti ' testPath “ kintamasis, kuris saugo testerio pateiktą kelią.
  • Dabar iškvieskite „ stat() “ metodą ir pereikite „ testPath “ kaip pirmasis parametras, o atgalinio skambinimo funkcija – kaip antrasis parametras.
  • Atskambinimo funkcijoje yra „ klaida “ kaip pirmąjį parametrą ir „ statObj “, kaip antroji. „ klaida “ yra klaidų, kurios atsiranda vykdant, o „startObj“ turi nurodytą kelią.
  • Funkcijos viduje naudokite „ jeigu “ teiginys, kuris vykdomas, jei nerasta klaida.
  • įdėtas jei ' teiginiai naudojami priskirti ' isFile() “ ir „ isDirectory() “ metodai su „ statObj “.
  • Jei metodai grįžta „ tiesa “ tik tada ta skiltis bus vykdoma ir atitinkamai rodomi sėkmės pranešimai.

Įvykdžius aukščiau pateiktą scenarijų, terminalas atrodo taip:

Kaip matote, pateiktas kelias dabar aptinkamas ir patvirtina, kad pateiktas kelias veda į katalogą.

Išvada

Norėdami nustatyti, ar pateiktas kelias yra NodeJs katalogo ar failo kelias, naudojami „ isFile() “ ir „ isKatalogas “ yra naudojami. Šiais metodais pasiekiamus kelius pateikia „ statSync() “ ir „ stat() “ metodai fs “ NodeJs modulis. Šie metodai saugo pateiktus kelius atitinkamai sinchroniniu ir asinchroniniu būdu. Šiame tinklaraštyje paaiškinta procedūra, kaip nustatyti, ar pateiktas kelias veda į failą ar katalogą NodeJS.