我在路径中有一个文件夹列表。我想在Node js的路径中获取最新创建的文件夹/文件。
代码:
fs.readdir(path,function(err,files){
console.log("files in the path",files);
}
从我想要最新创建的文件列表中
答案 0 :(得分:2)
您可以使用fs.statSync(path)
来检查文件更新时间。
fs.readdir(path,function(err,files){
files.filter(file => {
const stats = fs.statSync(path)
return someSpecificDate < stats.mtime
});
})
答案 1 :(得分:0)
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
});
答案 2 :(得分:0)
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
})
答案 3 :(得分:0)
您可以使用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和写入系统调用。
答案 4 :(得分:0)
return _.max(files, function (f) {
var fullpath = path.join(dir, f);
return fs.statSync(fullpath).ctime;
});
上面的代码为我工作,调用此函数以获取最新文件