Вам даже не нужно использовать так много потоков:
$path = 'C:\FiLeTwo.txt'
$text = Get-Content $path -Raw
Clear-Content $path
$text = $text -Replace ...
Если вы хотите использовать FileStream
, вы также можете использовать SetLength
, чтобы стереть содержимое:
# open with "ReadWrite"
$fileTwo = [System.IO.File]::Open("C:\FiLeTwo.txt", "Open", "ReadWrite", "None")
try {
# ... read, replace etc ...
# clear the contents:
$fileTwo.SetLength(0);
}
finally {
# make sure to put this in a finally block!
$fileTwo.Dispose()
}
(Убедитесь, что все ваши потоки правильно расположены в блоке finally!)