现在我用
fs.openSync(filepath, 'a')
但这有点棘手。是否存在在Node.js中创建空文件的“标准”方法?
答案 0 :(得分:132)
如果您想强制该文件为空,那么您想要使用'w'
标志:
var fd = fs.openSync(filepath, 'w');
如果文件存在,那将截断该文件,如果不存在则创建它。
如果您不需要它返回的文件描述符,请将其包含在fs.closeSync
调用中。
fs.closeSync(fs.openSync(filepath, 'w'));
答案 1 :(得分:8)
https://github.com/isaacs/node-touch将完成这项工作,就像它模拟的UNIX工具一样,不会覆盖现有文件。
答案 2 :(得分:6)
如果您希望它与UNIX触摸一样,我将使用您拥有的fs.openSync(filepath, 'a')
,否则如果文件已存在则“w”将覆盖该文件,如果文件已存在,则“wx”将失败。但是你想要更新文件的mtime,所以使用'a'并且什么都不附加。
答案 3 :(得分:5)
这是异步方式,使用"wx"
,因此现有文件失败。
var fs = require("fs");
fs.open(path, "wx", function (err, fd) {
// handle error
fs.close(fd, function (err) {
// handle error
});
});