Bagaimana Mendeteksi Jalur yang Disediakan adalah File atau Direktori di Node.js?

Bagaimana Mendeteksi Jalur Yang Disediakan Adalah File Atau Direktori Di Node Js



Mendeteksi entitas file penting terutama ketika aplikasi Anda menangani pengelolaan file atau menyimpan data pengguna di direktori tertentu. Karena satu direktori dapat menampung beberapa file, operasi yang dapat diterapkan padanya melibatkan pemindahan file ke direktori lain atau penghapusan semua file yang berada.

Hal yang sama berlaku dengan file, operasinya mungkin termasuk memodifikasi file, memasukkan data ke dalam file, atau menghapus satu data. Seluruh aplikasi akan kacau jika pengembang menerapkan operasi file pada direktori atau sebaliknya.

Artikel ini akan mengilustrasikan pendekatan untuk mendeteksi apakah jalur yang disediakan adalah file atau direktori dengan membahas metode berikut:







Bagaimana Mendeteksi Jalur yang Disediakan adalah File atau Direktori di Node.js?

Ada dua metode yang disediakan oleh “ fs ” modul yaitu “ isDirektori() ' Dan ' isFile() ” yang memiliki tujuan tunggal untuk memeriksa apakah jalur yang disediakan mengarah ke file atau direktori. Metode ini digunakan dalam skenario sinkron dan asinkron menggunakan “ statSync() ' Dan ' status() ” metode. Kedua metode ini ditunjukkan di bawah ini untuk mendeteksi apakah jalur yang disediakan mengarah ke file atau direktori.



Metode 1: Metode “statSync()” untuk Mendeteksi Jalur yang Mengarah ke Direktori atau File

statSync() ” metode yang disediakan oleh “ fs ” modul pada dasarnya digunakan untuk melakukan operasi sinkron. Metode ini dalam kasus kami, menyimpan instance dari jalur yang disediakan hanya satu kali. Kemudian, ia menetapkan “ isDirektori() ' Dan ' isFile() ” metode untuk mengembalikan apakah jalur yang ditentukan mengarah ke direktori atau file.



Mari kunjungi cuplikan kode di bawah ini untuk implementasi praktis metode “statSync()”:





konstanta fsObj = memerlukan ( 'fs' ) ;

biarkan pathFile = fsObj. Sinkronisasi statistik ( '/Pengguna/kahou/Documents/readlineProj/mcu.db' ) ;

menghibur. catatan ( 'Apakah Path Leads disediakan ke file? ' + pathFile. adalahFile ( ) ) ;

pathDir = fsObj. Sinkronisasi statistik ( '/Pengguna/kahou/Dokumen/readlineProj' ) ;

menghibur. catatan ( 'Apakah Path Leads disediakan ke direktori? ' + pathDir. adalahDirektori ( ) ) ;

Penjelasan untuk kode yang disediakan di atas dinyatakan di bawah ini:

  • Pertama, impor “ fs ” modul dan simpan instance-nya di “ fsObj ' variabel.
  • Kemudian, aktifkan “ statSync() ” metode menggunakan “ fsObj ” variabel dan meneruskan jalur yang dipilih di dalam tanda kurungnya. Simpan referensi jalur ini di dalam “ pathFile ' variabel.
  • Selanjutnya, tetapkan “ isFile() ” metode dengan “ pathFile ” untuk mengembalikan nilai boolean yang akan menunjukkan apakah jalur yang disediakan mengarah ke suatu file atau tidak.
  • Setelah itu, aktifkan kembali “ statSync() ” metode dan melewati jalur baru.
  • Terakhir, lampirkan “ isDirektori() ” metode dengan nilai yang dikembalikan oleh “ mulaiSinkronisasi() ' metode.

Sekarang, jalankan file saat ini menggunakan perintah di bawah ini:



'simpul '

Misalnya, kami telah mengeksekusi file “app.js”:

Outputnya menunjukkan nilai “ BENAR ” dikembalikan berarti jalur yang disediakan adalah untuk folder dan file telah terdeteksi.

Metode 2: Metode “stat()” untuk Mendeteksi Jalur yang Mengarah ke Direktori atau File

Metode lain yang berfungsi sempurna untuk lingkungan asinkron dikenal sebagai “ status() ” metode yang disediakan oleh “ fs ” modul. Itu juga menggunakan hal yang sama “ isFile() ' Dan ' isDirektori() ” tetapi karena sifatnya yang asinkron, jalur tunggal dapat diteruskan ke kedua metode. Ini memiliki dua parameter, yang pertama jalur penyimpanan dan yang kedua adalah fungsi panggilan balik yang melakukan beberapa operasi melalui jalur yang disediakan:

konstanta fsObj = memerlukan ( 'fs' ) ,
jalur tes = '/Pengguna/kahou/Dokumen/readlineProj'

// Gunakan metode stat()
fsObj. status ( jalur tes , ( kesalahan , statObj ) => {
jika ( ! kesalahan ) {
jika ( statObj. adalahFile ( ) ) {
menghibur. catatan ( ' \N Ya! Jalur yang Disediakan Mengarah ke File? ' ) ;
}
kalau tidak jika ( statObj. adalahDirektori ( ) ) {
menghibur. catatan ( ' \N Ya! Jalur yang Disediakan Mengarah ke Direktori? ' ) ;
}
}
kalau tidak
melemparkan kesalahan ;
} ) ;

Penjelasan untuk kode yang disediakan di atas ditunjukkan di bawah ini:

  • Pertama, impor “ fs ” modul dan simpan instance-nya di “ fsObj ' variabel. Membuat ' jalur tes ” variabel yang menyimpan jalur yang disediakan oleh penguji.
  • Sekarang, aktifkan “ status() ” metode dan lewati “ jalur tes ” sebagai parameter pertama dan fungsi panggilan balik sebagai parameter kedua.
  • Fungsi panggilan balik berisi “ kesalahan ” sebagai parameter pertama dan “ statObj ” sebagai yang kedua. “ kesalahan ” berisi kesalahan yang muncul selama eksekusi dan “startObj” memiliki jalur yang disediakan.
  • Di dalam fungsinya, gunakan “ jika ” pernyataan yang dijalankan jika tidak ditemukan kesalahan.
  • bersarang jika Pernyataan ” digunakan untuk menetapkan “ isFile() ' Dan ' isDirektori() ” metode dengan “ statObj ”.
  • Jika metode mengembalikan “ BENAR ” baru kemudian bagian tersebut dijalankan dan menampilkan pesan sukses yang sesuai.

Setelah skrip di atas dijalankan, tampilan terminalnya seperti ini:

Seperti yang Anda lihat, jalur yang disediakan sekarang terdeteksi dan mengonfirmasi jalur yang disediakan mengarah ke direktori.

Kesimpulan

Untuk mendeteksi apakah jalur yang disediakan adalah jalur direktori atau file di NodeJs, metode “ isFile() ' Dan ' adalahDirektori ” digunakan. Jalur yang dapat diakses dengan metode ini disediakan oleh “ statSync() ' Dan ' status() ” metode dari “ fs ” Modul NodeJs. Metode ini masing-masing menyimpan jalur yang disediakan secara sinkron dan asinkron. Blog ini telah menjelaskan prosedur untuk mendeteksi apakah jalur yang disediakan mengarah ke file atau direktori di NodeJS.