В node.js, могу ли я перечислить файлы с сопоставлением с дикой картой, например
fs.readdirSync('C:/tmp/*.csv')?
Я не нашел информацию о сопоставлении диких карт из документа fs.
В node.js, могу ли я перечислить файлы с сопоставлением с дикой картой, например
fs.readdirSync('C:/tmp/*.csv')?
Я не нашел информацию о сопоставлении диких карт из документа fs.
Это не распространяется на ядро 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.
})
Если 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);
});
Не изобретайте колесо, если вы находитесь на * 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');
});