我正在读取文件,加密内容,并使用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()
答案 0 :(得分:1)
在PowerShell中,>
字符用于重定向,将文本从一个命令传递到文件或另一个流。
用你的
行}While($count > 0)
您正在指示PowerShell将$count
的内容写入标题为0的文件。无论您在哪个目录中运行脚本,都会执行此操作。
将>
更改为-GT
,这是PowerShell比较运算符的大于,您应该得到您期望的结果。
此外,需要更改此循环,因为当前,它只会执行一次文件传递,因为$count > 0
不是可操作的比较。一旦你替换>与-gt
你应该很高兴。