【问题标题】:PowerShell StreamWriter path propertyPowerShell StreamWriter 路径属性
【发布时间】:2019-12-11 16:40:45
【问题描述】:

是否可以获取现有的 StreamWriter 变量并查看它正在使用的路径?据我所知(在变量上使用 Get-Member)答案是否定的。只是想验证我没有遗漏任何东西,因为这似乎是一个应该可以访问的属性。

作为一个小背景,我正在改造我的日志系统,它目前使用 Add-Content 并且在附加到更长的文件时会减慢速度。所以我想切换到基于 StreamWriter 的方法。但是,我还使用了两个日志文件,一个在初始化时位于 Temp 中,另一个可能在网络上,在验证了一些基于 XML 的设置(包括最终日志文件的路径)后,我开始使用它们。所以我需要能够切换日志路径。我已经在脚本范围变量中更改了路径,我使用 Getter 和 Setter 访问该变量。我的想法是为 Writer 也有一个 Getter,并检查路径以查看它是否与当前日志路径匹配,如果不匹配,则关闭旧日志并打开一个新日志。但是我看不到任何方法可以查看 StreamWriter 的路径是什么。

编辑:根据@bluff 的评论,我从

$script:pxlogWriter = New-Object io.streamWriter (Get-PxLogFile)

$script:pxlogWriter = New-Object io.fileStream (Get-PxLogFile), 'Append', 'Write', 'Read'

但仍然没有 Path 属性。

EDIT2:更正。没有路径属性,但 Name 属性是......路径。 WTF 微软不能至少有点逻辑和一致吗?叹。无论如何,我现在有我的单身人士工作。这就是进步。

【问题讨论】:

  • 据我所知,streamwriter 只是写入流:它没有知道流对数据做了什么的底层逻辑(它不应该),因为它可以是文件流、内存流, networkstream 等。如果您使用的是文件流,您可以检查文件流属性中的路径,但是流写入器不应该与这部分有任何关系。

标签: powershell streamwriter


【解决方案1】:

使用路径字符串 doesn't save this path 实例化的 StreamReader。所以不,没有办法获得路径。以不同的方式存储它,例如Tuple<string, StreamReader>

same goes for a StreamWriter

【讨论】:

    猜你喜欢
    • 2015-04-28
    • 2023-03-25
    • 2012-08-18
    • 1970-01-01
    • 2012-05-16
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多