Створити порожній файл у Node.js?


75

На даний момент я використовую

fs.openSync(filepath, 'a')

Але це трохи хитро. Чи існує "стандартний" спосіб створення порожнього файлу в Node.js?

Відповіді:


147

Якщо ви хочете примусити файл порожнім, тоді ви хочете використовувати 'w'прапор:

var fd = fs.openSync(filepath, 'w');

Це скоротить файл, якщо він існує, і створить його, якщо цього немає.

Загорніть його у fs.closeSyncвиклик, якщо вам не потрібен дескриптор файлу, який він повертає.

fs.closeSync(fs.openSync(filepath, 'w'));

1
fs.writeFileSync ('empty.txt', '');
ahuigo

fs.appendFileSync ('do_not_override.txt', '');
ahuigo

2
Ви можете поглянути тут, щоб побачити більше варіантів, ніж wпозначити nodejs.org/api/fs.html#fs_file_system_flags
Адітя Кресна Пермана

чи є спосіб створити кілька каталогів одночасно, крім циклу mkdir?? спасибі
oldboy

8

Ось асинхронний спосіб, який використовує, "wx"щоб він не працював із існуючими файлами.

var fs = require("fs");
fs.open(path, "wx", function (err, fd) {
    // handle error
    fs.close(fd, function (err) {
        // handle error
    });
});

чому ти хотів би, щоб це не вдалося?
Нік Сотірос

11
@NickSotiros, щоб файл не перезаписався, деякі випадки використання можуть цього захотіти.
Михайло Озерянський

8

Якщо ви хочете, щоб це було так само, як дотик UNIX, я б використав те, що у вас є, fs.openSync(filepath, 'a')інакше "w" перезапише файл, якщо він уже існує, а "wx" не вдасться, якщо він уже існує. Але ви хочете оновити mtime файлу, тому використовуйте 'a' і нічого не додайте.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.