Найти недавно созданный каталог в узле js - PullRequest
0 голосов
/ 01 июля 2019

У меня есть список папок в пути. Я хочу получить самые последние созданные папки / файлы по пути в Node js.

код:

fs.readdir(path,function(err,files){
console.log("files in the path",files);
}

из списка файлов, которые я хочу создать недавно

Ответы [ 4 ]

2 голосов
/ 01 июля 2019

Вы можете использовать fs.statSync(path) для проверки времени обновления файла.

fs.readdir(path,function(err,files){
 files.filter(file => {
const stats = fs.statSync(path)
  return someSpecificDate < stats.mtime
});
})


0 голосов
/ 01 июля 2019

Вы можете использовать fs.stat(path/of/the/file). Возвращает следующую информацию:

Stats {
  dev: 2114,
  ino: 48064969,
  mode: 33188,
  nlink: 1,
  uid: 85,
  gid: 100,
  rdev: 0,
  size: 527,
  blksize: 4096,
  blocks: 8,
  atimeMs: 1318289051000.1,
  mtimeMs: 1318289051000.1,
  ctimeMs: 1318289051000.1,
  birthtimeMs: 1318289051000.1,
  atime: Mon, 10 Oct 2011 23:24:11 GMT,
  mtime: Mon, 10 Oct 2011 23:24:11 GMT,
  ctime: Mon, 10 Oct 2011 23:24:11 GMT,
  birthtime: Mon, 10 Oct 2011 23:24:11 GMT
 }

Вам следует проверить значение mtime, поскольку оно представляет «Время изменения» или «Время последнего изменения данных файла». Он изменяется с помощью следующих команд: mknod, utimes и write системных вызовов.

0 голосов
/ 01 июля 2019

fs имеет функцию stat, которая принимает path и возвращает объект stats, содержащий последние использованные, измененные и созданные метки времени.

Документация: https://nodejs.org/api/fs.html#fs_class_fs_stats

Пример использования здесь: https://code -maven.com / system-information-about-a-file-or-directory-in-nodejs

Вы можете получить доступ к статистике каждого пути', добавьте созданные метки времени в массив с путем и затем сортируйте массив по убыванию метки времени.

Что-то вроде:

const paths = [
  '/path/to/file1',
  '/path/to/file2',
  '/path/to/file3',
  '/path/to/file4',
]

let pathTimestamps = []

// Add path timestamps to the pathTimestamps array as an object containing the path and created timestamp
paths.forEach(path => {
  fs.stat(path, (err, stats) => {
    pathTimestamps.push({ path: path, createdTimestamp: stats.birthtimeMs })
  }
})

// Sort the array by timestamp descending (newest paths first)
pathTimestamps.sort(a, b => {
  b.createdTimestamp - a.createdTimestamp
})
0 голосов
/ 01 июля 2019
const fs = require('fs');

var directory = './';

fs.readdir(directory, (err, files) => {
    if(err) {
        // handle error; e.g., folder didn't exist
    }
    // files refer to array of files in directory iterate through every file and refer the below link for file info operation

      https://code-maven.com/system-information-about-a-file-or-directory-in-nodejs
    for getting file/dir information 
});
...