# Метод utimes

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

← →
↑