2013-09-24 24 views
18

Trong ứng dụng nút, tôi cần lấy tất cả các tập tin trong thư mục ngoại trừ các tập tin ẩn. Tôi đã thử fs.readdir nhưng nó cũng hiển thị các tập tin ẩn.Cách nhập các tập tin ẩn trong kết quả fs.readdir

+1

thể trùng lặp của [Nodejs - Kiểm tra các tập tin ẩn] (http://stackoverflow.com/questions/8905680/nodejs-check-for-hidden-files) –

+1

Bạn có thể (hoặc phải tôi sẽ nói) lặp qua các tệp để lọc ra tệp "ẩn". Kiểm tra liên kết ở trên. – leesei

Trả lời

2

Bạn có thể sử dụng:

fs.readdir('/path/to/directory', function(err, list) { 
    list.forEach(function (filename) { 
    if(! /^\..*/.test(filename)) { 
     // display files 
    } 
    }); 
}); 
6

Sử dụng regex từ this câu trả lời, giải pháp đơn giản này loại bỏ tất cả các file ẩn từ kết quả:

fs.readdir('/path/to/directory', (err, list) => { 
    list = list.filter(item => !(/(^|\/)\.[^\/\.]/g).test(item)); 

    // Your code 
}); 
0

tôi sử dụng junk gói để bỏ qua các tập tin ẩn.

var fs = require('fs'); 
var junk = require('junk'); 

fs.readdir('path', function (err, files) { 
    console.log(files.filter(junk.not)); 
}); 
+0

rác không lọc tất cả các tệp bị ẩn. > ['Lọc ra các tập tin rác của hệ thống như .DS_Store và Thumbs.db'] (https://www.npmjs.com/package/junk) – 1252748

+0

@ 1252748 Có. Bạn có thể xác định regex để ẩn những gì bạn không cần. – Meteor

+0

Vậy tại sao lại sử dụng mô-đun rác? Chỉ cần lọc trên '/^\./'. Không có lý do để sử dụng một mô-đun không làm những gì bạn muốn chỉ để lọc kết quả của nó chính xác giống như cách bạn có thể lọc kết quả từ 'readdir'. – 1252748

Các vấn đề liên quan