如何在同一文件源中写入文件流

时间:2014-01-16 02:04:29

标签: c# filestream

我想用SourceFileName编写FileStream,但是当我创建代码时,会出现一条错误消息,指出正在使用文件流。如何交替,所以我打开源文件,然后将其写下来,然后存储在相同的源文件中。感谢

  

SourceFileName = output

以下是代码:

public void Encrypt(string SourceFileName, string output, string Key)
{
    try
    {
        FileStream FS1 = null; FileStream FS2 = null;
        FS1 = new FileStream(SourceFileName, FileMode.Open);
        FS2 = new FileStream(output, FileMode.OpenOrCreate);
        byte[] input = new byte[FS1.Length];
        FS1.Read(input, 0, input.Length);
        byte[] Encrypted = Encrypt(input, Key);
        FS2.Write(Encrypted, 0, Encrypted.Length);
        FS2.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

2 个答案:

答案 0 :(得分:0)

您无法以这种方式读取和写入同一文件。你有两个选择:

  1. 在写完所有数据之前先读取所有数据,然后处理它们之间的处理。
  2. 写完另一个文件,然后移动它以在完成后覆盖原始文件。

答案 1 :(得分:0)

打开文件时必须指定共享选项

FS1 = new FileStream(SourceFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)