获取文件夹内的最新文件

我有一个文件夹结构像

var/ testfolder1/ myfile.rb data.rb testfolder2/ home.rb sub.rb sample.rb rute.rb 

里面的var文件夹包含以下代码中的子文件夹(testfolder1,testfolder2)和一些文件(sample.rb,rute.rb),在var文件夹中包含文件夹和文件的josn对象

 { '0': ['sample.rb', 'rute.rb'], testfolder1: ['myfile.rb', 'data.rb', ], testfolder2: ['home.rb', 'sub.rb', ] } 

  var scriptsWithGroup = {}; fs.readdir('/home/var/', function(err, subfolder) { if(err) return context.sendJson({}, 200); var scripts = []; for (var j = 0; j < subfolder.length; j++) { var scriptsInFolder = []; if(fs.lstatSync(scriptPath + subfolder[j]).isDirectory()) { fs.readdirSync(scriptPath + subfolder[j]).forEach(function(file) { if (file.substr(file.length - 3) == '.rb') scriptsInFolder.push(file); }); scriptsWithGroup[subfolder[j]] = scriptsInFolder; } else { if (subfolder[j].substr(subfolder[j].length - 3) == '.rb') scripts.push(subfolder[j]); } } scriptsWithGroup["0"] = scripts; console.log(scriptsWithGroup) context.sendJson(scriptsWithGroup, 200); }); 

我需要的是我想返回最新的修改或创buildfiles.here我只使用2个文件夹里面包含很多files.so我想返回最新创build的

我要在这里假设你想要最近的两个文件。 如果你真的想要所有的东西,刚刚sorting,只要删除这部分:

 scriptsInFolder = scriptsInFolder.sort(function(a, b) { // or mtime, if you're only wanting file changes and not file attribute changes var time1 = fs.statSync(a).ctime; var time2 = fs.statSync(b).ctime; if (time1 < time2) return -1; if (time1 > time2) return 1; return 0; }).slice(0, 2); 

然而,我会补充说,通常认为不使用同步fs方法(例如fs.statSync )是最佳实践。 如果你能够安装async ,这将是一个很好的替代方法。