2013-09-24 6 views
18

नोड एप्लिकेशन में मुझे छिपी हुई फाइलों को छोड़कर निर्देशिका में सभी फाइलें प्राप्त करने की आवश्यकता है। मैंने fs.readdir की कोशिश की है लेकिन यह छिपी हुई फाइलों को भी प्रदर्शित करता है।fs.readdir परिणाम में छिपी हुई फाइलों को कैसे सम्मिलित करें

+1

के संभावित डुप्लिकेट [NodeJS - छिपा फ़ाइलों के लिए जाँच करें] (http://stackoverflow.com/questions/8905680/nodejs-check-for-hidden-files) –

+1

आप सकता है (या के लिए मैं कहूंगा) "छिपी हुई" फ़ाइल को फ़िल्टर करने के लिए फ़ाइलों के माध्यम से लूप करें। उपरोक्त लिंक देखें। – leesei

उत्तर

2

आप उपयोग कर सकते हैं:

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

regex का उपयोग this जवाब से, इस सरल समाधान परिणाम से सभी छिपी हुई फ़ाइलें निकालता है:

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

    // Your code 
}); 
0

मैं junk पैकेज का उपयोग छिपी हुई फ़ाइलें अनदेखी करने के लिए।

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

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

जंक सभी छिपी हुई फाइलों को फ़िल्टर नहीं करता है। > ['.DS_Store और Thumbs.db' जैसी सिस्टम जंक फ़ाइलों को फ़िल्टर करें] (https://www.npmjs.com/package/junk) – 1252748

+0

@ 1252748 हां। आप जिस चीज की आवश्यकता नहीं है उसे छुपाने के लिए आप रेगेक्स को परिभाषित कर सकते हैं। – Meteor

+0

फिर जंक मॉड्यूल का उपयोग क्यों करें? बस '/^\./' पर फ़िल्टर करें। ऐसे मॉड्यूल का उपयोग करने का कोई कारण नहीं है जो आप अपने परिणामों को फ़िल्टर करने के लिए बिल्कुल वही नहीं करते हैं, जैसे आप 'readdir' से परिणामों को फ़िल्टर कर सकते हैं। – 1252748

संबंधित मुद्दे