【问题标题】:Update LastWriteTime without closing the FileStream在不关闭 FileStream 的情况下更新 LastWriteTime
【发布时间】:2019-12-13 17:27:18
【问题描述】:

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

编辑:有趣的是,文件 SIZE 无需关闭即可更新,因此 Length 属性为我提供了更新的触发器。我喜欢微软的一致性。 ;)

【问题讨论】:

    标签: powershell streamwriter


    【解决方案1】:

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

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

    它会立即更改文件信息。

    【讨论】:

    • 有趣。从概念上讲,我不太了解文件中 Get-ChildItem 的概念,但有趣的是,当 Get-Item 没有时,它会起作用。
    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多