83

现在我使用

fs.openSync(filepath, 'a')

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

4

3 回答 3

158

如果您想强制文件为空,那么您想使用该'w'标志:

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

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

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

fs.closeSync(fs.openSync(filepath, 'w'));
于 2012-10-09T22:38:27.203 回答
11

这是异步方式,使用"wx"它在现有文件上失败。

var fs = require("fs");
fs.open(path, "wx", function (err, fd) {
    // handle error
    fs.close(fd, function (err) {
        // handle error
    });
});
于 2014-12-26T17:40:23.070 回答
10

如果你希望它像 UNIX 触摸一样,我会使用你所拥有fs.openSync(filepath, 'a')的,否则如果文件已经存在,'w' 将覆盖文件,如果文件已经存在,'wx' 将失败。但是你想更新文件的 mtime,所以使用 'a' 并且不附加任何内容。

于 2015-12-14T03:06:10.297 回答