Как да откриете, че предоставеният път е файл или директория в Node.js?

Kak Da Otkriete Ce Predostaveniat P T E Fajl Ili Direktoria V Node Js



Откриването на файловия обект е важно, особено когато вашите приложения се занимават с управление на файл или съхраняват потребителски данни в определени директории. Тъй като отделните директории могат да съдържат няколко файла, операцията, която може да бъде приложена към тях, включва преместване на файлове в друга директория или изтриване на всички пребиваващи файлове.

Същото важи и за файл, неговите операции могат да включват модифициране на файла, вмъкване на данни във файла или изтриване на един файл. Цялото приложение ще бъде объркано, ако разработчикът приложи файлови операции върху директории или обратно.

Тази статия ще илюстрира подходите за откриване дали предоставеният път е файл или директория, като обхваща следните методи:







Как да откриете, че предоставеният път е файл или директория в Node.js?

Има два метода, предоставени от „ fs „модул, а именно“ isDirectory() ' и ' isFile() ”, който има единствената цел да провери дали предоставеният път води до файл или директория. Тези методи се използват както в синхронни, така и в асинхронни сценарии, като се използва „ statSync() ' и ' статистика() ” методи. Тези два метода са демонстрирани по-долу, за да се установи дали предоставеният път води до файл или директория.



Метод 1: Методът „statSync()“ за откриване на пътя, който води до директорията или файла

statSync() ” метод, предоставен от “ fs ” модул се използва основно за извършване на синхронни операции. Този метод в нашия случай съхранява екземпляра на предоставения път само веднъж. След това присвоява „ isDirectory() ' и ' isFile() ” методи за връщане дали посоченият път води до директория или файл.



Нека посетим кодовия фрагмент по-долу за практическото прилагане на метода „statSync()“:





конст fsObj = изискват ( 'fs' ) ;

нека pathFile = fsObj. statSync ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

конзола. дневник ( „Предоставеният път води ли до файл? ' + pathFile. isFile ( ) ) ;

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

конзола. дневник ( „Предоставеният път води ли до директория? ' + pathDir. isDirectory ( ) ) ;

Обяснението за предоставения по-горе код е посочено по-долу:

  • Първо импортирайте „ fs ” модул и съхранява неговия екземпляр в „ fsObj ” променлива.
  • След това извикайте „ statSync() ' метод с помощта на ' fsObj ” променлива и подайте избрания път в скобите. Съхранявайте препратката на този път в „ pathFile ” променлива.
  • След това задайте „ isFile() ' метод с ' pathFile ”, за да върне булева стойност, която ще покаже дали предоставеният път води до файл или не.
  • След това отново извикайте „ statSync() ” и подайте новия път.
  • Накрая прикачете „ isDirectory() ” със стойността, върната от „ startSync() ” метод.

Сега изпълнете текущия файл, като използвате командата по-долу:



'възел <име на файл>'

Например изпълнихме файла „app.js“:

Резултатът показва стойността на „ вярно ” се връща означава, че предоставените пътища са за папката и файлът е открит.

Метод 2: Методът „stat()“ за откриване на пътя, който води до директорията или файла

Друг метод, който работи перфектно за асинхронна среда, е известен като „ статистика() ”, който се предоставя от „ fs ” модул. Той също така използва същото „ isFile() ' и ' isDirectory() ”, но поради асинхронния си характер, единственият път може да бъде предаден и на двата метода. Той има два параметъра, първият път за съхранение, а вторият е функция за обратно извикване, която изпълнява някои операции по предоставения път:

конст fsObj = изискват ( 'fs' ) ,
testPath = '/Users/kahou/Documents/readlineProj'

// Използване на метода stat().
fsObj. статистика ( testPath , ( грешка , statObj ) => {
ако ( ! грешка ) {
ако ( statObj. isFile ( ) ) {
конзола. дневник ( ' да Предоставеният път води до файл? ' ) ;
}
друго ако ( statObj. isDirectory ( ) ) {
конзола. дневник ( ' да Предоставеният път води до директория? ' ) ;
}
}
друго
хвърлям грешка ;
} ) ;

Обяснението за предоставения по-горе код е показано по-долу:

  • Първо импортирайте „ fs ” модул и съхранява неговия екземпляр в „ fsObj ” променлива. Създавам ' testPath ” променлива, която съхранява предоставения път от тестера.
  • Сега извикайте „ статистика() ” и предайте „ testPath ” като първи параметър и функция за обратно извикване като втори параметър.
  • Функцията за обратно извикване съдържа „ грешка ” като първи параметър и „ statObj ” като вторият. „ грешка ” съдържа грешки, които възникват по време на изпълнение и „startObj” има предоставения път.
  • Вътре във функцията използвайте „ ако ”, който се изпълнява, ако не бъде открита грешка.
  • вложено ако ” се използват за присвояване на „ isFile() ' и ' isDirectory() ' методи с ' statObj ”.
  • Ако методите се върнат ' вярно ” само тогава този раздел се изпълнява и съответно показва съобщенията за успех.

След изпълнение на горния скрипт, терминалът изглежда така:

Както можете да видите, предоставеният път вече е открит и потвърждава, че предоставеният път води до директория.

Заключение

За да се установи дали предоставеният път е пътят на директория или файл в NodeJs, методите на „ isFile() ' и ' isDirectory ' са използвани. Пътищата, които са достъпни чрез тези методи, се предоставят от „ statSync() ' и ' статистика() ' методи на ' fs ” Модул NodeJs. Тези методи съхраняват предоставените пътища съответно по синхронен и асинхронен начин. Този блог обяснява процедурата за откриване дали предоставеният път води до файл или директория в NodeJS.