На даний момент я використовую
fs.openSync(filepath, 'a')
Але це трохи хитро. Чи існує "стандартний" спосіб створення порожнього файлу в Node.js?
На даний момент я використовую
fs.openSync(filepath, 'a')
Але це трохи хитро. Чи існує "стандартний" спосіб створення порожнього файлу в Node.js?
Відповіді:
Якщо ви хочете примусити файл порожнім, тоді ви хочете використовувати 'w'
прапор:
var fd = fs.openSync(filepath, 'w');
Це скоротить файл, якщо він існує, і створить його, якщо цього немає.
Загорніть його у fs.closeSync
виклик, якщо вам не потрібен дескриптор файлу, який він повертає.
fs.closeSync(fs.openSync(filepath, 'w'));
w
позначити nodejs.org/api/fs.html#fs_file_system_flags
mkdir
?? спасибі
Ось асинхронний спосіб, який використовує, "wx"
щоб він не працював із існуючими файлами.
var fs = require("fs");
fs.open(path, "wx", function (err, fd) {
// handle error
fs.close(fd, function (err) {
// handle error
});
});
Якщо ви хочете, щоб це було так само, як дотик UNIX, я б використав те, що у вас є, fs.openSync(filepath, 'a')
інакше "w" перезапише файл, якщо він уже існує, а "wx" не вдасться, якщо він уже існує. Але ви хочете оновити mtime файлу, тому використовуйте 'a' і нічого не додайте.
https://github.com/isaacs/node-touch виконає цю роботу і, як і інструмент UNIX, який він емулює, не перезапише існуючий файл.
node-touch
є якась інша перевага на fs.closeSync(fs.openSync(filepath, 'a'));
додаток до оновлення позначки часу для існуючих файлів?