如何从Node JS中修改的目录排序日期读取文件

sag*_*ara 8 javascript node.js

需要读取特定目录中的文件列表,其中Date由Node js中的降序或升序修改.

我试过下面的代码,但无法得到解决方案.

fs.readdir(path, function (err, files) {
                    if (err) throw err;
                    else {
                        var res = [];
                        files.forEach(function (file) {
                            if (file.split('.')[1] == "json") {
                                fs.stat(path, function (err, stats) {                                                                  

                                });
                                res.push(file.substring(0, file.length - 5));
                            }
                        });
                    }  
Run Code Online (Sandbox Code Playgroud)

stats参数将mtime作为修改时间?

有没有办法获得修改日期的文件.

Gau*_*dhi 18

mtime给出了Unix时间戳.您可以轻松地将日期转换为日期,
const date = new Date(mtime);

对于您的排序问题,您可以执行以下操作

var dir = 'mydir/';

fs.readdir(dir, function(err, files){
  files = files.map(function (fileName) {
    return {
      name: fileName,
      time: fs.statSync(dir + '/' + fileName).mtime.getTime()
    };
  })
  .sort(function (a, b) {
    return a.time - b.time; })
  .map(function (v) {
    return v.name; });
});  
Run Code Online (Sandbox Code Playgroud)

files将按升序排列的文件数组.
对于降,只需更换a.timeb.time,像b.time - a.time

  • 出色的。为什么在 SO 上很难找到这个? (2认同)

sag*_*ara -4

我已经使用排序操作得到了答案。

fs.stat(path, function (err, stats) {
                        res.push(file.substring(0, file.length - 5) + '&' + stats.mtime);
                    });
Run Code Online (Sandbox Code Playgroud)

将 mtime 存储到一个数组中,并使用下面 url 中的排序技术对该数组进行排序。

简单的冒泡排序 C#