var fs = require("fs"); fs.readdir(__dirname, function(error, files) { if (error) { console.error(error); } else { for (var i = 0, j = files.length; i < j; i++) { console.log(files[i]); } } });
var fs = require("fs"); var path = require("path"); var buffers = []; fs.readdir(__dirname, function(error1, files) { if (error1) { console.error(error1); } else { for (var i = 0, j = files.length; i < j; i++) { var file = path.join(__dirname, files[i]); fs.stat(file, function(error2, stats) { if (error2) { console.error(error2); } else if (stats.isFile()) { fs.readFile(file, function(error3, buffer) { if (error3) { console.error(error3); } else { buffers.push(buffer); } }); } }); } } }); console.log(buffers);
var fs = require("fs"); var path = require("path"); function promisify(func, args) { return new Promise(function(resolve, reject) { func.apply(null, [].concat(args, function(error, result) { if (error) { reject(error); } else { resolve(result); } })); }); } promisify(fs.readdir, [__dirname]) .then(function(items) { return Promise.all(items.map(function(item) { var file = path.join(__dirname, item); return promisify(fs.stat, [file]) .then(function(stat) { if (stat.isFile()) { return promisify(fs.readFile, [file]); } else { throw new Error("Not a file!"); } }) .catch(function(error) { console.error(error); }); })); }) .then(function(buffers) { return buffers.filter(function(buffer) { return buffer; }); }) .then(function(buffers) { console.log(buffers); }) .catch(function(error) { console.error(error); });
import fs from "fs"; import path from "path"; function promisify(func, args) { return new Promise((resolve, reject) => { func.apply(null, [...args, (err, result) => { if (err) { reject(err); } else { resolve(result); } }]); }); } promisify(fs.readdir, [__dirname]) .then(items => Promise.all(items.map(item => { const file = path.join(__dirname, item); return promisify(fs.stat, [file]) .then(stat => { if (stat.isFile()) { return promisify(fs.readFile, [file]); } else { throw new Error("Not a file!"); } }) .catch(console.error); }))) .then(buffers => buffers.filter(e => e)) .then(console.log) .catch(console.error);
import fs from "fs"; import path from "path"; function promisify(func, args) { return new Promise((resolve, reject) => { func.apply(null, [...args, (err, result) => { if (err) { reject(err); } else { resolve(result); } }]); }); } function getItems() { return promisify(fs.readdir, [__dirname]); } function checkItems(items) { return Promise.all(items.map(file => promisify(fs.stat, [path.join(__dirname, file)]) .then(stat => { if (stat.isFile()) { return file; } else { throw new Error("Not a file!"); } }) .catch(console.error))) .then(files => { return files.filter(file => file); }); } function readFiles(files) { return Promise.all(files.map(file => { return promisify(fs.readFile, [file]); })); } function * main() { return yield readFiles(yield checkItems(yield getItems())); } const generator = main(); generator.next().value.then(items => { return generator.next(items).value.then(files => { return generator.next(files).value.then(buffers => { console.log(buffers); }); }); });
import fs from "fs"; import path from "path"; function promisify(func, args) { return new Promise((resolve, reject) => { func.apply(null, [...args, (error, result) => { if (error) { reject(error); } else { resolve(result); } }]); }); } function getItems() { return promisify(fs.readdir, [__dirname]); } function checkItems(items) { return Promise.all(items.map(file => promisify(fs.stat, [path.join(__dirname, file)]) .then(stat => { if (stat.isFile()) { return file; } else { throw new Error("Not a file!"); } }) .catch(console.error))) .then(files => { return files.filter(file => file); }); } function readFiles(files) { return Promise.all(files.map(file => { return promisify(fs.readFile, [file]); })); } async function main() { return await readFiles(await checkItems(await getItems())); } main() .then(console.log) .catch(console.error);
import bluebird from "bluebird"; import fs from "fs"; import path from "path"; const myFs = bluebird.promisifyAll(fs); function getItems(dirname) { return myFs.readdirAsync(dirname) .then(items => items.map(item => path.join(dirname, item))); } function getFulfilledValues(results) { return results .filter(result => result.isFulfilled()) .map(result => result.value()); } function checkItems(items) { return bluebird.settle(items.map(item => myFs.statAsync(item) .then(stat => { if (stat.isFile()) { return [item]; } else if (stat.isDirectory()) { return getItems(item); } }))) .then(getFulfilledValues) .then(result => [].concat(...result)); } function readFiles(files) { return bluebird.settle(files.map(file => myFs.readFileAsync(file))) .then(getFulfilledValues); } async function main(dirname) { return await readFiles(await checkItems(await getItems(dirname))); } main(__dirname) .then(console.log) .catch(console.error);
Source: https://habr.com/ru/post/304474/
All Articles