我想发送到客户端文件名和文件创建日期,我试图使用fs.stat提供出生时间,但我没有看到文件名在那里,所以我的问题,出生时间是文件创建日期?
如何发送以json创建的文件名和日期?
app.js
var readDirectory = require('./readDirectory');
app.get('/logs',function(req,res){
readDirectory.readDirectory(function(logFiles){
res.json(logFiles);
});
});
readDirectory.js
var fs = require('fs');
var path = './logs/ditLogs'
function readDirectory(callback){
fs.stat(path, function (err,stats) {
console.log('STATS',stats);
callback(stats);
});
}
exports.readDirectory = readDirectory;
答案 0 :(得分:3)
在fade
中,是Node v0.12.0
是文件创建时间
检查birthtime
API详细信息here
答案 1 :(得分:1)
是否可以获得文件创建时间取决于操作系统和文件系统。传统的POSIX只定义ctime,这是(相当容易混淆)inode修改日期,而不是其他人提到的创建日期。但是,在某些操作系统上,您可以获得st_birthtimespec或st_birthtime,这是真正的"创建"时间。您需要检查主机操作系统上的sys / stat.h,看看有什么可用的。
不幸的是,你是否可以从node.js访问整个stat结构是一个不同的鱼。但至少你可以弄清楚你的操作系统是否支持它并从那里开始。
答案 2 :(得分:0)
如果有人在此之后偶然发现了这一点,那么从Node v0.12.0开始,请使用:
fs.stat(path, callback)
回调有两个arr err&统计。 Stats对象具有属性
birthtime
这是创建日期。
答案 3 :(得分:0)
出生时间是文件创建日期时间。此脚本将文件创建日期和文件名显示为 json。
const fs = require("fs");
fs.stat(
__filename,
function (err, stat) {
if (err) {
return console.log("err",err, stat);
} else {
console.log("stat", stat);
console.log( '{"createtime":"' + stat.birthtime.toISOString().replace(/[:\.T]/g,"-").replace(/[^0-9\-]*/g,"") +'","filename":"' + __filename + '"}' );
}
return;
}
);
结果:
Stats {
dev: 3767638129,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 209135907696022600,
size: 379,
blocks: 0,
atimeMs: 1622023360041.0825,
mtimeMs: 1622023358411.5193,
ctimeMs: 1622023358411.5193,
birthtimeMs: 1621956288957.1938,
atime: 2021-05-26T10:02:40.041Z,
mtime: 2021-05-26T10:02:38.412Z,
ctime: 2021-05-26T10:02:38.412Z,
birthtime: 2021-05-25T15:24:48.957Z
}
{"createtime":"2021-05-25-15-24-48-957",
"filename":"D:\js\filecreatedatetest.js"}
文件名是 fs.stat() 的第一个参数,在你的代码中这个值是 var path = './logs/ditLogs'