PowerShell关闭FileStream

时间:2015-12-18 14:15:00

标签: powershell filestream

我正在读取文件,加密内容,并使用PowerShell将密文写回文件。当FileStream对象($ inFS)关闭时,它会在名为" 0"的pwd(C:\ docs)中创建一个文件。我打开了文件,它有" 32"写给它。

加密内容正在写入不同目录中的文件,没有任何问题。我想也许缓冲区中还有一些东西,所以我尝试了Flush()和Dispose()但结果相同。这是为什么?

$inFile = 'C:\docs\algorithm_fsa.c'
$inFS = New-Object FileStream($inFile, [FileMode]::Open)

DO
{

  $count = $inFS.Read($data, 0, $blockSizeBytes)
  $offset += $count
  $outStreamEncrypted.Write($data, 0, $count)
  $bytesRead += $blockSizeBytes

}While($count > 0)

$inFS.Close()

1 个答案:

答案 0 :(得分:1)

在PowerShell中,>字符用于重定向,将文本从一个命令传递到文件或另一个流。

用你的

}While($count > 0)

您正在指示PowerShell将$count的内容写入标题为0的文件。无论您在哪个目录中运行脚本,都会执行此操作。

>更改为-GT,这是PowerShell比较运算符的大于,您应该得到您期望的结果。

此外,需要更改此循环,因为当前,它只会执行一次文件传递,因为$count > 0不是可操作的比较。一旦你替换>与-gt你应该很高兴。