Paano Matukoy ang Ibinigay na Path ay isang File o Direktoryo sa Node.js?

Paano Matukoy Ang Ibinigay Na Path Ay Isang File O Direktoryo Sa Node Js



Ang pag-detect sa file entity ay mahalaga lalo na kapag ang iyong mga application ay nakikitungo sa pamamahala ng isang file o nag-iimbak ng data ng user sa mga partikular na direktoryo. Dahil ang mga solong direktoryo ay maaaring maglaman ng ilang mga file, ang operasyon na maaaring ilapat dito ay nagsasangkot ng paglipat ng mga file sa isa pang direktoryo o sa pagtanggal ng lahat ng mga naninirahan na file.

Ang parehong napupunta sa isang file, ang mga pagpapatakbo nito ay maaaring kabilang ang pagbabago ng file, pagpasok ng data sa file, o pagtanggal ng isang solong. Magugulo ang buong application kung ilalapat ng developer ang mga pagpapatakbo ng file sa mga direktoryo o vice versa.

Ang artikulong ito ay maglalarawan ng mga diskarte upang matukoy kung ang ibinigay na landas ay isang file o isang direktoryo sa pamamagitan ng pagsakop sa mga pamamaraang ito:







Paano Matukoy ang Ibinigay na Path ay isang File o Direktoryo sa Node.js?

Mayroong dalawang pamamaraan na ibinigay ng ' fs ” module na “ isDirectory() 'at' isFile() ” na may tanging layunin ng pagsuri kung ang ibinigay na landas ay humahantong sa isang file o direktoryo. Ang mga pamamaraang ito ay ginagamit sa parehong kasabay at asynchronous na mga sitwasyon gamit ang ' statSync() 'at' stat() ' paraan. Ang dalawang pamamaraang ito ay ipinapakita sa ibaba upang makita kung ang ibinigay na landas ay humahantong sa isang file o direktoryo.



Paraan 1: Ang Paraan ng 'statSync()' para Matukoy ang Landas na Humahantong sa Direktoryo o File

Ang ' statSync() ” paraan na ibinigay ng “ fs ” modyul ay karaniwang ginagamit upang magsagawa ng mga kasabay na operasyon. Ang pamamaraang ito sa aming kaso, ay nag-iimbak ng halimbawa ng ibinigay na landas nang isang beses lamang. Pagkatapos, itinalaga nito ang ' isDirectory() 'at' isFile() ” paraan upang ibalik kung ang tinukoy na landas ay humahantong sa isang direktoryo o file.



Bisitahin natin ang snippet ng code sa ibaba para sa praktikal na pagpapatupad ng 'statSync()' na paraan:





const fsObj = nangangailangan ( 'fs' ) ;

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

console. log ( 'Ibinigay ba ang Path Leads sa isang file ? ' + pathFile. isFile ( ) ) ;

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

console. log ( 'Ibinigay ba ang Path Leads sa isang direktoryo? ' + pathDir. isDirectory ( ) ) ;

Ang paliwanag para sa ibinigay na code sa itaas ay nakasaad sa ibaba:

  • Una, i-import ang ' fs ” module at iimbak ang instance nito sa isang “ fsObj ” variable.
  • Pagkatapos, tawagan ang ' statSync() 'paraan gamit ang ' fsObj ” variable at ipasa ang napiling landas sa loob ng panaklong nito. Itabi ang sanggunian ng landas na ito sa loob ng “ pathFile ” variable.
  • Susunod, italaga ang ' isFile() 'paraan na may ' pathFile ” upang magbalik ng boolean value na magpapakita kung ang ibinigay na path ay humahantong sa isang file o hindi.
  • Pagkatapos nito, muling tawagan ang ' statSync() ” paraan at ipasa ang bagong landas.
  • Panghuli, ilakip ang ' isDirectory() 'paraan na may halagang ibinalik ng ' startSync() ” paraan.

Ngayon, isagawa ang kasalukuyang file gamit ang command sa ibaba:



'node '

Halimbawa, naisakatuparan namin ang 'app.js' na file:

Ang output ay nagpapakita ng halaga ng ' totoo ” ay ibinalik ay nangangahulugan na ang mga ibinigay na landas ay para sa folder at ang file ay nakita.

Paraan 2: Ang Paraan ng “stat()” para Matukoy ang Path na Humahantong sa Direktoryo o File

Ang isa pang paraan na perpektong gumagana para sa asynchronous na kapaligiran ay kilala bilang ' stat() 'paraan na ibinibigay ng ' fs ” modyul. Ginagamit din nito ang parehong ' isFile() 'at' isDirectory() ” na mga pamamaraan ngunit dahil sa asynchronous na katangian nito, ang solong landas ay maaaring maipasa sa parehong mga pamamaraan. Mayroon itong dalawang parameter ang una sa isang store path at ang pangalawa ay isang callback function na nagsasagawa ng ilang operasyon sa ibinigay na path:

const fsObj = nangangailangan ( 'fs' ) ,
testPath = '/Users/kahou/Documents/readlineProj'

// Gumamit ng stat() method
fsObj. stat ( testPath , ( pagkakamali , statObj ) => {
kung ( ! pagkakamali ) {
kung ( statObj. isFile ( ) ) {
console. log ( ' \n Oo! Ang Ibinigay na Path ay humahantong sa isang File ? ' ) ;
}
iba pa kung ( statObj. isDirectory ( ) ) {
console. log ( ' \n Oo! Ang Ibinigay na Landas ay Humahantong sa isang Direktoryo ? ' ) ;
}
}
iba pa
itapon pagkakamali ;
} ) ;

Ang paliwanag para sa ibinigay na code sa itaas ay ipinapakita sa ibaba:

  • Una, i-import ang ' fs ” module at iimbak ang instance nito sa isang “ fsObj ” variable. Gumawa ng ' testPath ” variable na nag-iimbak ng ibinigay na landas ng tester.
  • Ngayon, tawagan ang ' stat() 'paraan at ipasa ang' testPath ” bilang unang parameter at callback function bilang pangalawang parameter.
  • Ang callback function ay naglalaman ng ' pagkakamali ' bilang unang parameter at ' statObj ” bilang pangalawa. Ang ' pagkakamali ” ay naglalaman ng mga error na lumabas sa panahon ng pagpapatupad at ang “startObj” ay may ibinigay na landas.
  • Sa loob ng function, gamitin ang ' kung ” pahayag na tumatakbo kung walang nakitang error.
  • Ang ' nested kung 'Ang mga pahayag ay ginagamit upang italaga ang ' isFile() 'at' isDirectory() 'mga pamamaraan na may ' statObj ”.
  • Kung ang mga pamamaraan ay bumalik ' totoo ” pagkatapos lamang maipatupad ang seksyong iyon at ipapakita ang mga mensahe ng tagumpay nang naaayon.

Pagkatapos isagawa ang script sa itaas, lilitaw ang terminal tulad nito:

Tulad ng nakikita mo ang ibinigay na landas ay nakita na ngayon at kinukumpirma ang ibinigay na landas na humahantong sa isang direktoryo.

Konklusyon

Upang makita kung ang ibinigay na landas ay ang landas ng isang direktoryo o file sa NodeJs, ang mga pamamaraan ng ' isFile() 'at' isDirectory ' ay ginamit. Ang mga landas na naa-access ng mga pamamaraang ito ay ibinibigay ng ' statSync() 'at' stat() 'mga pamamaraan ng' fs ” Module ng NodeJs. Ang mga pamamaraan na ito ay nag-iimbak ng mga ibinigay na landas sa magkasabay at asynchronous na paraan ayon sa pagkakabanggit. Ipinaliwanag ng blog na ito ang pamamaraan upang matukoy kung ang ibinigay na landas ay humahantong sa isang file o direktoryo sa NodeJS.