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



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