在不关闭 FileStream 的情况下更新 LastWriteTime

Update LastWriteTime without closing the FileStream

我成功地使用 StreamWriter 增量写入日志文件,并且为了确保实时记录,我尝试了 AutoFlush 和 Flush() 方法。两者都有效,日志文件实时更新。但是,LastModified 数据在关闭之前不会更改。我想做的一个单独过程是将该日志复制到网络位置以进行实时监控,但仅限于更改。所以我需要查看 LastWriteTime 才能知道何时进行复制。 我猜可以为每次写入重新创建 StreamWriter,因此我也可以在之后立即关闭,但这似乎效率很低。有什么方法可以在不关闭流的情况下更新 LastWriteTime 吗?

编辑:有趣的是,文件 SIZE 没有关闭就更新了,所以长度 属性 给了我更新的触发器。我喜欢微软的一致性。 ;)

考虑到您有完整的文件路径可用,您可以尝试以下操作:

$filePath = "C:\the\path\for\your\streamwrite\file.txt"
$fileReference = (Dir $filePath)
$fileReference.LastWriteTime = Get-Date

它会立即更改文件信息。