【发布时间】:2011-04-28 06:38:30
【问题描述】:
我想打开一个文本文件,不允许任何其他进程写入。我知道我可以使用以下 FileStream 做到这一点:
Dim fs As New FileStream(_FilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.Read)
一旦我有这样的访问权限,我需要读取所有行(我将使用 StreamReader(fs)),然后我需要写入文件(我将使用 StreamWriter(fs))。
这里的问题是,当我使用文件流而不是文件路径作为参数时,StreamWriter 不允许我将附加模式设置为 false(这样我就可以覆盖文件中的所有文本)。因此,使用 StreamWriter 编写的所有文本都附加到我不想要的文本上。如果我使用带有文件路径的 StreamWriter(这将使我将 append 设置为 false)作为参数而不是文件流,它将因为 FileStream FileShare 而被锁定。我怎样才能仍然拥有读取和写入文件的独占访问权限,但仍然能够覆盖现有文本(附加模式为 false)?
【问题讨论】:
标签: vb.net file-io filestream streamreader streamwriter