Метод futimes - временные метки модификации и доступа через файловый дескриптор на NodeJS

Метод futimes изменяет временные метки модификации и доступа через файловый дескриптор. Временные метки могут быть указаны с использованием числа, строки или объекта Date. Если метка времени не может быть преобразована в правильное число или имеет значение NaN, Infinity или -Infinity будет выдана ошибка. В первом параметре метода указывается нужный нам файловый дескриптор. Во втором параметре задаем новую отметку времени доступа, которую необходимо установить, в третьем параметре - новую отметку времени модификации, которую необходимо установить. В третьем необязательном параметре задаем коллбэк.

Синтаксис

fs.futimes(файловый дескриптор, время доступа, время модификации, [коллбэк]);

Пример

Давайте асинхронно изменим временные метки модификации и доступа файлового дескриптора через коллбэк. Вначале узнаем статистику о файловом дескрипторе через метод statSync, затем с помощью команд mtime и atime установим время модификации и доступа файла. После этого введем новые значения для времени доступа и времени модификации файла и в конце применим метод futimes:

import fs from 'fs';

let fileDescriptor = fs.openSync('file.txt', 'r+');
let stat1 = fs.statSync('file.txt');

console.log('modification time1:', stat1.mtime);
console.log('access time1:', stat1.atime);

let modeTime = new Date();
let accessTime = new Date();

fs.futimes(fileDescriptor, accessTime, modeTime, () => {
	let stat2 = fs.statSync('file.txt');
	console.log('modification time2:', stat2.mtime);
	console.log('access time2:', stat2.atime);
});

Пример

А теперь давайте синхронно изменим временные метки модификации и доступа файлового дескриптора через futimesSync:

import fs from 'fs';

let fileDescriptor = fs.openSync('file.txt', 'r+');
let stat1 = fs.statSync('file.txt');

console.log('modification time1:', stat1.mtime);
console.log('access time1:', stat1.atime);

let modeTime = new Date();
let accessTime = new Date();

try {
	fs.futimesSync(fileDescriptor, accessTime, modeTime);
	let stat2 = fs.statSync('file.txt');
	console.log('modification time2:', stat2.mtime);
	console.log('access time2:', stat2.atime);
} catch (err) {
	console.log(err);
}

Смотрите также

  • метод utimes,
    который изменяет временные метки модификации и доступа к файлу
  • метод unwatchFile,
    который прекращает наблюдения за изменениями в файле



Чат с GPT Компилятор