Làm cách nào để phát hiện đường dẫn được cung cấp là tệp hoặc thư mục trong Node.js?

Lam Cach Nao De Phat Hien Duong Dan Duoc Cung Cap La Tep Hoac Thu Muc Trong Node Js



Việc phát hiện thực thể tệp rất quan trọng, đặc biệt khi ứng dụng của bạn xử lý việc quản lý tệp hoặc lưu trữ dữ liệu người dùng trong các thư mục cụ thể. Bởi vì các thư mục đơn lẻ có thể chứa nhiều tập tin nên thao tác có thể được áp dụng cho nó liên quan đến việc di chuyển các tập tin sang thư mục khác hoặc xóa tất cả các tập tin đang lưu trú.

Điều tương tự cũng xảy ra với một tệp, các hoạt động của nó có thể bao gồm sửa đổi tệp, chèn dữ liệu vào tệp hoặc xóa một tệp. Toàn bộ ứng dụng sẽ bị rối nếu nhà phát triển áp dụng các thao tác trên tệp trên các thư mục hoặc ngược lại.

Bài viết này sẽ minh họa các phương pháp phát hiện xem đường dẫn được cung cấp là tệp hay thư mục bằng cách bao gồm các phương pháp sau:







Làm cách nào để phát hiện đường dẫn được cung cấp là tệp hoặc thư mục trong Node.js?

Có hai phương pháp được cung cấp bởi “ fs ” mô-đun cụ thể là “ isDirectory() ' Và ' isFile() ” có mục đích duy nhất là kiểm tra xem đường dẫn được cung cấp có dẫn đến tệp hoặc thư mục hay không. Các phương thức này được sử dụng trong cả kịch bản đồng bộ và không đồng bộ bằng cách sử dụng “ statSync() ' Và ' chỉ số() “các phương pháp. Hai phương pháp này được trình bày bên dưới để phát hiện xem đường dẫn được cung cấp có dẫn đến tệp hoặc thư mục hay không.



Phương pháp 1: Phương pháp “statSync()” để phát hiện đường dẫn dẫn đến thư mục hoặc tệp

Các ' statSync() ” phương pháp được cung cấp bởi “ fs ” mô-đun về cơ bản được sử dụng để thực hiện các hoạt động đồng bộ. Phương thức này trong trường hợp của chúng tôi chỉ lưu trữ phiên bản của đường dẫn được cung cấp một lần. Sau đó, nó gán “ isDirectory() ' Và ' isFile() ” để trả về xem đường dẫn đã chỉ định có dẫn đến một thư mục hay tập tin hay không.



Hãy xem đoạn mã dưới đây để biết cách triển khai thực tế của phương thức “statSync()”:





hằng số fsObj = yêu cầu ( 'fs' ) ;

hãy để pathFile = fsObj. đồng bộ hóa thống kê ( '/Users/kahou/Documents/readlineProj/mcu.db' ) ;

bảng điều khiển. nhật ký ( 'Có được cung cấp Đường dẫn tới một tập tin không? ' + pathFile. isFile ( ) ) ;

pathDir = fsObj. đồng bộ hóa thống kê ( '/Người dùng/kahou/Tài liệu/readlineProj' ) ;

bảng điều khiển. nhật ký ( 'Có được cung cấp Đường dẫn dẫn đến một thư mục không? ' + pathDir. isDirectory ( ) ) ;

Giải thích cho mã được cung cấp ở trên được nêu dưới đây:

  • Đầu tiên, nhập “ fs ” mô-đun và lưu trữ phiên bản của nó trong một mô-đun “ fsObj ' Biến đổi.
  • Sau đó, gọi “ statSync() ” phương pháp sử dụng “ fsObj ” biến và chuyển đường dẫn đã chọn vào trong dấu ngoặc đơn của nó. Lưu trữ tham chiếu của đường dẫn này bên trong “ đường dẫnFile ' Biến đổi.
  • Tiếp theo, gán “ isFile() ” phương thức với “ đường dẫnFile ” để trả về giá trị boolean cho biết đường dẫn được cung cấp có dẫn đến tệp hay không.
  • Sau đó, lại gọi “ statSync() ” phương thức và vượt qua con đường mới.
  • Cuối cùng, đính kèm “ isDirectory() ” phương thức có giá trị được trả về bởi “ startSync() ' phương pháp.

Bây giờ, thực thi tệp hiện tại bằng lệnh bên dưới:



'nút '

Ví dụ: chúng tôi đã thực thi tệp “app.js”:

Đầu ra hiển thị giá trị của “ ĐÚNG VẬY ” được trả về có nghĩa là các đường dẫn được cung cấp dành cho thư mục và tệp đã được phát hiện.

Phương pháp 2: Phương pháp “stat()” để phát hiện đường dẫn dẫn đến thư mục hoặc tệp

Một phương pháp khác hoạt động hoàn hảo cho môi trường không đồng bộ được gọi là “ chỉ số() ” phương pháp được cung cấp bởi “ fs ” mô-đun. Nó cũng sử dụng tương tự “ isFile() ' Và ' isDirectory() ” nhưng do tính chất không đồng bộ nên một đường dẫn duy nhất có thể được truyền cho cả hai phương thức. Nó có hai tham số, đường dẫn lưu trữ thứ nhất và tham số thứ hai là hàm gọi lại thực hiện một số thao tác trên đường dẫn được cung cấp:

hằng số fsObj = yêu cầu ( 'fs' ) ,
đường dẫn kiểm tra = '/Người dùng/kahou/Tài liệu/readlineProj'

// Sử dụng phương thức stat()
fsObj. chỉ số ( đường dẫn kiểm tra , ( lỗi , statObj ) => {
nếu như ( ! lỗi ) {
nếu như ( statObj. isFile ( ) ) {
bảng điều khiển. nhật ký ( ' \N Đúng! Đường dẫn được cung cấp dẫn đến một tệp? ' ) ;
}
khác nếu như ( statObj. isDirectory ( ) ) {
bảng điều khiển. nhật ký ( ' \N Đúng! Đường dẫn được cung cấp dẫn đến một thư mục? ' ) ;
}
}
khác
ném lỗi ;
} ) ;

Giải thích cho mã được cung cấp ở trên được hiển thị bên dưới:

  • Đầu tiên, nhập “ fs ” mô-đun và lưu trữ phiên bản của nó trong một mô-đun “ fsObj ' Biến đổi. Tạo một ' đường dẫn kiểm tra ” biến lưu trữ đường dẫn được cung cấp bởi người kiểm tra.
  • Bây giờ, hãy gọi “ chỉ số() ” phương thức và truyền “ đường dẫn kiểm tra ” làm tham số đầu tiên và hàm gọi lại làm tham số thứ hai.
  • Hàm gọi lại chứa “ lỗi ” là tham số đầu tiên và “ statObj ” như cái thứ hai. Các ' lỗi ” chứa các lỗi phát sinh trong quá trình thực thi và “startObj” có đường dẫn được cung cấp.
  • Bên trong hàm, hãy sử dụng “ nếu như ” câu lệnh chạy nếu không tìm thấy lỗi.
  • Các ' lồng nhau nếu Câu lệnh ” được sử dụng để gán “ isFile() ' Và ' isDirectory() ” phương pháp với “ statObj ”.
  • Nếu các phương thức trả về “ ĐÚNG VẬY ” chỉ khi đó phần đó mới được thực thi và hiển thị các thông báo thành công tương ứng.

Sau khi thực thi đoạn script trên, terminal sẽ xuất hiện như sau:

Như bạn có thể thấy, đường dẫn được cung cấp hiện đã được phát hiện và xác nhận đường dẫn được cung cấp dẫn đến một thư mục.

Phần kết luận

Để phát hiện xem đường dẫn được cung cấp có phải là đường dẫn của thư mục hoặc tệp trong NodeJ hay không, các phương thức “ isFile() ' Và ' isDirectory ' được sử dụng. Các đường dẫn có thể truy cập được bằng các phương thức này được cung cấp bởi “ statSync() ' Và ' chỉ số() “các phương pháp của” fs ” Mô-đun NodeJs. Các phương thức này lưu trữ các đường dẫn được cung cấp theo cách đồng bộ và không đồng bộ tương ứng. Blog này đã giải thích quy trình phát hiện xem đường dẫn được cung cấp có dẫn đến tệp hoặc thư mục trong NodeJS hay không.