在Node.js中创建一个空文件?


75

现在我用

fs.openSync(filepath, 'a')

但这有点棘手。是否有“标准”方式在Node.js中创建空文件?

Answers:


147

如果要强制文件为空,'w'则要改用标志:

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

如果该文件存在,则将截断该文件;如果不存在,则将创建该文件。

fs.closeSync如果不需要返回的文件描述符,则将其包装在调用中。

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

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

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

2
您可能会在这里看到更多的选项,而不是w标志nodejs.org/api/fs.html#fs_file_system_flags
Aditya Kresna Permana

除了循环之外,有没有一种方法可以一次创建多个目录mkdir?谢谢
oldboy

8

这是异步方法,使用"wx"它可以使现有文件失败。

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

你为什么要失败?
Nick Sotiros 2015年

11
@NickSotiros,因此文件不会被覆盖,某些用例可能需要这样做。
Michael Ozeryansky '16

8

如果您希望它像UNIX touch一样,我将使用您拥有的东西,fs.openSync(filepath, 'a')否则'w'将覆盖文件(如果已存在),而'wx'将失败(如果已存在)。但是您想更新文件的mtime,因此请使用'a',并且不附加任何内容。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.