При правильном использовании fs.stat()
выдает эту информацию о папке, взятой непосредственно из console.log(stats)
в этом коде (при запуске в Windows, но я считаю, что она должна работать и на других платформах):
const fs = require('fs');
fs.stat("html", function(err, stats) {
if (err) {
console.log(err);
} else {
console.log(stats);
}
});
Результат в консоли:
Stats {
dev: 2525584580,
mode: 16822,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: undefined,
ino: 281474976939511,
size: 0,
blocks: undefined,
atimeMs: 1517560386009.7627,
mtimeMs: 1517560386009.7627,
ctimeMs: 1517560386009.7627,
birthtimeMs: 1517560385994.137,
atime: 2018-02-02T08:33:06.010Z,
mtime: 2018-02-02T08:33:06.010Z,
ctime: 2018-02-02T08:33:06.010Z,
birthtime: 2018-02-02T08:33:05.994Z
}
За документ , birthtime
может быть или не быть датой создания (зависит от ОС). ctime
не время создания (это время изменения файлового узла, то есть параметры узла, а не содержимое файла).
Из документа:
Время рождения «Время рождения» - время создания файла. Устанавливается один раз при создании файла. В файловых системах, где время рождения недоступно, это поле может содержать либо ctime, либо 1970-01-01T00: 00Z (т. Е. Отметка времени эпохи Unix 0). В этом случае это значение может быть больше, чем atime или mtime. В Darwin и других вариантах FreeBSD также устанавливается, если atime явно установлен на более раннее значение, чем текущее время рождения, с помощью системного вызова utimes (2).
Это похоже на способ сказать, что это просто большой беспорядок и зависит от платформы. Так что, если вы хотите использовать его для чего-то полезного, вам, вероятно, придется протестировать свою платформу, чтобы убедиться, что она действительно нужна.
Похожие обсуждения:
Получить дату создания файла в узле
По-прежнему нет интерфейса ядра Linux для получения даты создания файла?
Как получить дату создания файла с помощью модуля fs?
Кроме того, в вашем коде вы не передаете достаточно пути к вашей функции fs.stat()
. fs.readdir()
возвращает только имя файла / каталога (без указания пути), поэтому при попытке сделать это:
folders.map((paths)=>{...}
Переменная paths
- это просто одно имя файла, которого нет в текущем каталоге. Чтобы все заработало, вы должны вернуть путь обратно, прежде чем вызывать fs.stat()
.
let root = path.join(__dirname,'../movies/');
let folders = fs.readdirSync(root);
folders.map(name => {
let fullname = path.join(root, name);
fs.stat(fullname,(err, state) => {
console.log(err, state)
});
});