Как очистить содержимое файла после прочтения - PullRequest
0 голосов
/ 13 ноября 2018

Операция чтения данных и последующей очистки файла должна быть в одном сеансе.и другие процессы не должны иметь доступа к файлу.

$FileTwo = [System.io.File]::Open('C:\FiLeTwo.txt', "Open", "Read", "None") 
$FileTwo2 = New-Object System.IO.StreamReader($FileTwo)
$text = $text + $FileTwo2.ReadToEnd()

$text = $text -replace '\ ' -replace 'g' -replace '\(' -replace '\)' -replace $re, "" #-replace '\n'
# Set-Content 'C:\FiLeTwo.txt' "" -Force 
# IN that moment I need to clear the file. 
# But I need cleare the file and,  after, close the File ($FileTwo.Close())

$FileTwo.Close()

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Вам даже не нужно использовать так много потоков:

$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!)

0 голосов
/ 13 ноября 2018

Вы можете использовать Clear-Content, чтобы стереть содержимое вашего файла, но не удаляя его.

Пример: Clear-Content c:\path\to\your\file.txt

Подробнее об этом можно прочитать здесь: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/clear-content?view=powershell-6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...