Метод utimes - временные метки модификации и доступа файла на NodeJS
Метод utimes
изменяет временные метки
модификации и доступа к файлу. Значениями временных меток
могут быть числа, строки или объект Date
.
Будет выдана ошибка, если метка времени не может быть преобразована в
правильное число или имеет значение NaN
, Infinity
или
-Infinity
. В первом параметре метода указывается путь
к нужному нам файлу. Во втором параметре задаем
новую отметку времени доступа, в третьем параметре -
новую отметку времени модификации.
В четвертом необязательном параметре
задаем коллбэк.
Синтаксис
fs.utimes(путь к файлу, время доступа, время модификации, [коллбэк]);
Пример
Давайте асинхронно изменим временные
метки модификации и доступа файла
через await
. Вначале узнаем статистику о файле
через метод stat
, затем с помощью
команд mtime
и atime
установим время модификации
и доступа файла. После этого введем новые значения для
времени доступа и времени модификации файла и в конце
применим метод utimes
:
import fs from 'fs/promises';
let stat1 = await fs.stat('./dir/file.txt');
console.log('modification time1:', stat1.mtime);
console.log('access time1:', stat1.atime);
let modeTime = new Date();
let accessTime = new Date();
try {
await fs.utimes('./dir/file.txt', accessTime, modeTime);
let stat2 = await fs.stat('./dir/file.txt');
console.log('modification time2:', stat2.mtime);
console.log('access time2:', stat2.atime);
} catch (err) {
console.log(err);
}
Пример
Теперь давайте асинхронно
изменим временные метки модификации
и доступа файла через
then
:
import fs from 'fs/promises';
let stat1 = await fs.stat('./dir/file.txt');
console.log('modification time1:', stat1.mtime);
console.log('access time1:', stat1.atime);
let modeTime = new Date();
let accessTime = new Date();
fs.utimes('./dir/file.txt', accessTime, modeTime).then(() => {
fs.stat('./dir/file.txt').then((stat2) => {
console.log('modification time2:', stat2.mtime);
console.log('access time2:', stat2.atime);
});
}).catch((err) => {
console.log(err);
});
Пример
Давайте асинхронно изменим временные метки модификации и доступа файла через коллбэк:
import fs from 'fs';
let stat1 = fs.statSync('./dir/file.txt');
console.log('modification time1:', stat1.mtime);
console.log('access time1:', stat1.atime);
let modeTime = new Date();
let accessTime = new Date();
fs.utimes('./dir/file.txt', accessTime, modeTime, () => {
let stat2 = fs.statSync('./dir/file.txt');
console.log('modification time2:', stat2.mtime);
console.log('access time2:', stat2.atime);
});
Пример
А теперь давайте синхронно изменим
временные метки модификации
и доступа файла через
utimesSync
:
import fs from 'fs';
let stat1 = fs.statSync('./dir/file.txt');
console.log('modification time1:', stat1.mtime);
console.log('access time1:', stat1.atime);
let modeTime = new Date();
let accessTime = new Date();
try {
fs.utimesSync('./dir/file.txt', accessTime, modeTime);
let stat2 = fs.statSync('./dir/file.txt');
console.log('modification time2:', stat2.mtime);
console.log('access time2:', stat2.atime);
} catch (err) {
console.log(err);
}
Смотрите также
-
метод
futimes
,
который изменяет временные метки модификации и доступа через файловый дескриптор