【问题标题】:How do I set a files last modified date?如何设置文件的最后修改日期?
【发布时间】:2014-02-28 14:44:17
【问题描述】:

我正在通过fs.createWriteStream 写入多个文件。

我想将 Last Modified 值更改为特定的时间戳,但我很难弄清楚如何实现这一点,我需要一些指导来让它工作。

我在一个有file 参数的循环中使用这段代码。

var stream = fs.createWriteStream(__dirname + '/images/' + file.id + file.ext, { flags: 'w', encoding: null, mode: 0666 });

stream.on('finish', function(data) {
    fs.utimes(stream.path, file.ts, file.ts, function (err) {
        if (err) { throw err; }
        console.log('>> Set mtime to: '+ file.ts);
    });
});

client.getBlob(file.id).then(function(blob) {
    blob.pipe(stream);
});

它在完成事件中记录了正确的内容,但在 Windows 中,我修改的日期是创建文件的时间。

节点版本为0.10.25

【问题讨论】:

    标签: javascript node.js last-modified


    【解决方案1】:

    一旦流完成其操作并关闭,也许快速打开并将一个字符附加到文件将使最后修改日期更接近您想要的日期?

    【讨论】:

    • 我想将日期设置为存储在文件对象中的文件原始日期,所以它可能是几年前,也可能是 2 天前 - 但几乎从来没有在我写文件的时候.
    • 啊,我明白了,在那种情况下,我不确定你会如何在 javascript 中做到这一点。
    • Node 可以做到这一点,但我无法让它工作。 (nodejs.org/api/fs.html#fs_fs_utimes_path_atime_mtime_callback)
    • 所以你希望atime(创建日期?)与`mtime'(修改日期?)相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2020-05-12
    • 2019-02-26
    • 2011-11-25
    • 2011-10-17
    相关资源
    最近更新 更多