Node.js'de Sağlanan Yolun Dosya veya Dizin Olduğu Nasıl Tespit Edilir?

Node Js De Saglanan Yolun Dosya Veya Dizin Oldugu Nasil Tespit Edilir



Dosya varlığının tespit edilmesi, özellikle uygulamalarınız bir dosyanın yönetimiyle ilgili olduğunda veya kullanıcı verilerini belirli dizinlerde depoladığında önemlidir. Tek dizinler birçok dosyayı tutabildiğinden, ona uygulanabilecek işlem, dosyaların başka bir dizine taşınmasını veya tüm mevcut dosyaların silinmesini içerir.

Aynı şey bir dosya için de geçerlidir; işlemleri, dosyayı değiştirmeyi, dosyaya veri eklemeyi veya tek bir dosyayı silmeyi içerebilir. Geliştirici dosya işlemlerini dizinler üzerinden uygularsa veya tam tersi olursa tüm uygulama bozulacaktır.

Bu makale, aşağıdaki yöntemleri kapsayarak sağlanan yolun bir dosya mı yoksa bir dizin mi olduğunu tespit etmeye yönelik yaklaşımları açıklayacaktır:







Node.js'de Sağlanan Yolun Dosya veya Dizin Olduğu Nasıl Tespit Edilir?

tarafından sağlanan iki yöntem vardır. fs ” modülü yani “ isDirectory() ' Ve ' isFile() Bu, yalnızca sağlanan yolun bir dosyaya veya dizine yönlendirip yönlendirmediğini kontrol etme amacına sahiptir. Bu yöntemler hem senkron hem de asenkron senaryolarda “ statSync() ' Ve ' istatistik() ”yöntemleri. Sağlanan yolun bir dosyaya mı yoksa dizine mi gittiğini tespit etmek için bu iki yöntem aşağıda gösterilmiştir.



Yöntem 1: Dizine veya Dosyaya Giden Yolu Algılamak için “statSync()” Yöntemi

statSync() tarafından sağlanan yöntem “ fs ” modülü Temel olarak senkron işlemleri gerçekleştirmek için kullanılır. Bizim durumumuzda bu yöntem, sağlanan yolun örneğini yalnızca bir kez saklar. Daha sonra “” atamasını yapar. isDirectory() ' Ve ' isFile() Belirtilen yolun bir dizine mi yoksa dosyaya mı yönlendirdiğini döndürme yöntemleri.



“StatSync()” metodunun pratik uygulaması için aşağıdaki kod parçasını inceleyelim:





yapı fsObj = gerekmek ( 'f' ) ;

yol Dosyasına izin ver = fsObj. istatistik senkronizasyonu ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

konsol. kayıt ( 'Bir dosyaya giden Yol Sağlanıyor mu? ' + pathDosyası. isDosyası ( ) ) ;

Yol Dizini = fsObj. istatistik senkronizasyonu ( '/Kullanıcılar/kahou/Belgeler/readlineProj' ) ;

konsol. kayıt ( 'Bir dizine giden Yol Sağlanıyor mu? ' + yolDir. isDizin ( ) ) ;

Yukarıda verilen kodun açıklaması aşağıda belirtilmiştir:

  • İlk önce “ fs ” modülüne gidin ve örneğini “ fsObj ” değişkeni.
  • Daha sonra “ statSync() ' yöntemini kullanarak ' fsObj ” değişkenini seçin ve seçilen yolu parantez içine alın. Bu yolun referansını “ yol Dosyası ” değişkeni.
  • Ardından, “ isFile() ' yöntemi ile ' yol Dosyası Sağlanan yolun bir dosyaya yönlendirilip yönlendirilmediğini gösteren bir boole değeri döndürmek için ”.
  • Bundan sonra tekrar “ statSync() ” yöntemini kullanın ve yeni yolu geçin.
  • Son olarak “ isDirectory() ' tarafından döndürülen değere sahip ' yöntemi startSync() ' yöntem.

Şimdi mevcut dosyayı aşağıdaki komutu kullanarak yürütün:



'düğüm '

Örneğin “app.js” dosyasını çalıştırdık:

Çıktı “ değerini gösterir. doğru ” döndürülürse, sağlanan yolların klasör için olduğu ve dosyanın algılandığı anlamına gelir.

Yöntem 2: Dizine veya Dosyaya Giden Yolu Algılamak için “stat()” Yöntemi

Eşzamansız ortam için mükemmel çalışan bir diğer yöntem ise “ istatistik() 'tarafından sağlanan yöntem' fs ” modülü. O da aynı şeyi kullanıyor” isFile() ' Ve ' isDirectory() ” yöntemleri ancak eşzamansız yapısı nedeniyle, tek yol her iki yönteme de aktarılabilir. İki parametresi vardır; ilki depolama yolu ve ikincisi, sağlanan yol üzerinden bazı işlemleri gerçekleştiren bir geri çağırma işlevidir:

yapı fsObj = gerekmek ( 'f' ) ,
test yolu = '/Kullanıcılar/kahou/Belgeler/readlineProj'

// stat() yöntemini kullan
fsObj. istatistik ( test yolu , ( hata , statObj ) => {
eğer ( ! hata ) {
eğer ( statObj. isDosyası ( ) ) {
konsol. kayıt ( ' \N Evet! Sağlanan Yol Bir Dosyaya mı Gidiyor? ' ) ;
}
başka eğer ( statObj. isDizin ( ) ) {
konsol. kayıt ( ' \N Evet! Sağlanan Yol Bir Dizine Çıkıyor mu? ' ) ;
}
}
başka
fırlatmak hata ;
} ) ;

Yukarıda verilen kodun açıklaması aşağıda gösterilmiştir:

  • İlk önce “ fs ” modülüne gidin ve örneğini “ fsObj ” değişkeni. Oluşturmak ' test yolu Test cihazı tarafından sağlanan yolu saklayan değişken.
  • Şimdi, “ istatistik() ” yöntemini kullanın ve “'yi iletin test yolu İlk parametre olarak ” ve ikinci parametre olarak bir geri çağırma işlevi.
  • Geri arama işlevi şunları içerir: hata İlk parametre olarak ” ve “ statObj ”ikincisi olarak. “ hata ” yürütme sırasında ortaya çıkan hataları içerir ve “startObj” sağlanan yola sahiptir.
  • Fonksiyonun içinde “ eğer Herhangi bir hata bulunmazsa çalışacak olan ifade.
  • eğer iç içe geçmişse ' ifadeleri ' atamak için kullanılır isFile() ' Ve ' isDirectory() '' ile 'yöntemleri' statObj ”.
  • Yöntemler geri dönerse “ doğru ” ancak o zaman o bölüm yürütülür ve başarı mesajlarını buna göre görüntüler.

Yukarıdaki betiği çalıştırdıktan sonra terminal şu ​​şekilde görünür:

Gördüğünüz gibi sağlanan yol artık algılandı ve sağlanan yolun bir dizine yönlendirdiğini doğruladı.

Çözüm

Sağlanan yolun NodeJ’lerdeki bir dizin veya dosya yolu olup olmadığını tespit etmek için “ isFile() ' Ve ' isDizin ' kullanılmış. Bu yöntemlerle erişilebilen yollar “ statSync() ' Ve ' istatistik() 'yöntemleri' fs ”NodeJs modülü. Bu yöntemler, sağlanan yolları sırasıyla senkronize ve asenkron bir şekilde saklar. Bu blog, sağlanan yolun NodeJS'deki bir dosyaya veya dizine yönlendirip yönlendirmediğini tespit etme prosedürünü açıkladı.