添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
var pathName = "E:/test"; fs.readdir(pathName, function(err, files){ for (var i=0; i 执行代码,输出结果:

输出了空数组,为什么?

首先牢记nodejs单线程,非阻塞的特点。fs.readdir()和fs.stat()都是异步执行。console.log()执行时,可能fs.stat()的回调函数尚未执行完毕,所以输出了空数组。

修改上述代码,改异步为同步,可以得到想要结果。

var path = require("path");
var fs = require("fs");
var pathName = "E:/test";
fs.readdir(pathName, function(err, files){
    var dirs = [];
    (function iterator(i){
      if(i == files.length) {
        console.log(dirs);
        return ;
      fs.stat(path.join(pathName, files[i]), function(err, data){     
        if(data.isFile()){               
            dirs.push(files[i]);
        iterator(i+1);
    })(0);

   执行代码,输出结果:

[ 'project.txt', 'text.txt' ]
   读取目录下的所有文件,不要求递归子目录下的文件。本文主要分析Nodejs中的同步和异步问题。  下面的代码能得到结果吗?var path = require("path");var fs = require("fs");var dirs = [];var pathName = "E:/test";fs.readdir(pathName, function(err, file... function getfiles(path){ //读取目录下所有目录文件 返回数组 return fs.readdirSync(path,{encoding:'utf8', withFileTypes:true}) function isFile(filepath){ //判断是否是文件 Boolean let stat = fs.statSync(filepa
这个问题是我在实际中遇到的,意思很明确,一个目录下可能还嵌套子目录,我需要遍历出该目录下所有的文件,其实思路很简单,就是利用递归的思路,定义一个函数,传入一个目录路径参数,开始遍历该目录下的文件,如果遇到的是目录,则继续调用该函数,直到所有的目录遍历完成,结束。 这里有个问题,就是我们需要通过这个函数得到所有的文件,而不仅仅是遍历一遍。遍历很好做,但是要通过这个函数返回一个数组,数组中就是所有的文件,这就有点麻烦了。遍历目录就是需要调用fs.readdirSync(path)函数。判断文件...
Node.js 中,您可以使用该fs.readdir()方法列出目录中的所有可用文件。.此方法异步工作以读取给定目录的内容,并返回目录中不包括和的文件名数组..。 这是一个读取目录中所有可用文件并在控制台上打印它们的名称的示例: const fs = require('fs'); // directory path const dir = './node_modules/'; // list all files in the directory fs.readdir(dir, (err, fi
const path = require(‘path’) const files = require.context(’@/components/home’, false, /.vue$/) const modules = {} files.keys().forEach(key => {undefined const name = path.basename(key, ‘.vue’) //返回文件名 不含后缀名 content= files(key).default || files(key) var fs=require('fs'); var copy=function(src,dst){ let paths = fs.readdirSync(src); //同步读取当前目录 paths.forEach(function(path){ var _src=src+'/'+path; var _dst=dst+'/'+path; fs.stat(_src,function(err,stats){ //stats 该对象 包含文件属性 if(err)throw er
一直关注node.js的发展,但是没有动手写过东西,前面同事帮忙用python写了个工具, 获取一个文件夹下面的所有文件名的列表,python真的是强大,俺决定用node来写一个。 使用方法,把下面代码保存为一个js文件比如xxoo.js ,然后打开命令行工具,进入xxoo.js 所在目录,输入: node xxoo.js '这里为你要统计的目标文件夹目录' 然后 你会 在 xxoo....
const directoryPath = './myDirectory'; fs.readdir(directoryPath, function (err, files) { if (err) { console.log('Error getting directory information.'); } else { // 过滤出所有图片文件 const imageFiles = files.filter(function (file) { return path.extname(file).toLowerCase() === '.jpg' || path.extname(file).toLowerCase() === '.jpeg' || path.extname(file).toLowerCase() === '.png' || path.extname(file).toLowerCase() === '.gif'; // 构造图片文件的全路径 const imagePaths = imageFiles.map(function (file) { return path.join(directoryPath, file); console.log(imagePaths); 在上面的代码中,我们首先引入了 fs 和 path 模块,并设置了要读取目录路径。然后使用 `fs.readdir` 方法读取目录中的所有文件,如果出现错误则打印错误信息,否则使用 `Array.filter` 方法过滤出所有图片文件,再使用 `Array.map` 方法构造图片文件的全路径,并打印出来。