Метод utimes

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

Синтаксис

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

Пример

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

javascriptimport 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:

javascriptimport 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);
});

Пример

Давайте асинхронно изменим временные метки модификации и доступа файла через коллбэк:

javascriptimport 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:

javascriptimport 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,
    который изменяет временные метки модификации и доступа через файловый дескриптор