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

时间:2012-10-09 22:01:33

标签: node.js filesystems

现在我用

fs.openSync(filepath, 'a')

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

4 个答案:

答案 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
    });
});