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:
- Dizine veya Dosyaya Giden Yolu Algılamak için “statSync()” Yöntemi
- Dizine veya Dosyaya Giden Yolu Algılamak için “stat()” Yöntemi
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ı.