Найти файл с подстановочными картами
В node.js, могу ли я перечислить файлы с сопоставлением с дикой картой, например
fs.readdirSync('C:/tmp/*.csv')?
Я не нашел информацию о сопоставлении диких карт из документа fs.
Ответы
Ответ 1
Это не распространяется на ядро Node. Вы можете проверить этот модуль за то, что вам нужно. npmjs.org также является отличным ресурсом для поиска различных модулей.
Использование
var glob = require("glob")
// options is optional
glob("**/*.js", options, function (er, files) {
// files is an array of filenames.
// If the `nonull` option is set, and nothing
// was found, then files is ["**/*.js"]
// er is an error object or null.
})
Ответ 2
Если glob не совсем то, что вы хотите, или немного запутанным, есть также glob-fs. Документация охватывает множество сценариев использования с примерами.
// sync
var files = glob.readdirSync('*.js', {});
// async
glob.readdir('*.js', function(err, files) {
console.log(files);
});
// stream
glob.readdirStream('*.js', {})
.on('data', function(file) {
console.log(file);
});
// promise
glob.readdirPromise('*.js')
.then(function(files) {
console.log(file);
});
Ответ 3
Не изобретайте колесо, если вы находитесь на * nix, инструмент ls
может легко сделать это (node api docs)
var options = {
cwd: process.cwd(),
}
require('child_process')
.exec('ls -1 *.csv', options, function(err, stdout, stderr){
if(err){ console.log(stderr); throw err };
// remove any trailing newline, otherwise last element will be "":
stdout = stdout.replace(/\n$/, '');
var files = stdout.split('\n');
});