在代码中出现了一些错误,表示正在使用该文件。 我需要实现的是在文件中添加加密数据的第一部分,然后在同一文件中添加第二部分的加密数据。此文件需要稍后解密。我对这个领域很陌生。非常感谢。
Class3 cs3;
StreamWriter sWriter;
private void Add_text_Part_One()
{
Rijndael RijndaelAlg = Rijndael.Create();
// Create a string to encrypt.
string sData = "Here is some data to encrypt.";
string FileName = @"C:\CText.txt";
cs3 = new Class3(sData, FileName, RijndaelAlg.Key, RijndaelAlg.IV);
sWriter = new StreamWriter(cs3.getCS());
sWriter.WriteLine(sData);
sWriter.Close();
}
private void Add_text_Part_Two()
{
string sData = "Here is some more data to encrypt.";
sWriter.WriteLine(sData);
sWriter.Close();
}
class Class3
{
FileStream fStream;
Rijndael RijndaelAlg;
CryptoStream cStream;
public Class3(String Data, String FileName, byte[] Key, byte[] IV)
{
fStream = File.Open(FileName, FileMode.Append);
RijndaelAlg = Rijndael.Create();
cStream = new CryptoStream(fStream, RijndaelAlg.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
}
public CryptoStream getCS()
{
return cStream;
}
public string getRes()
{
StreamReader sReader = new StreamReader(cStream);
string val = null;
val = sReader.ReadLine();
return val;
}
答案 0 :(得分:2)
,调用File.Open()并将生成的FileStream分配给fstream。此fstream对象永远不会关闭,因此文件保持打开状态。您将不得不关闭fstream(优先实现IDisposable并在使用块中使用Class3)
编辑:对不起,我想我在这里失去了它。我不相信以上是正确的,但是,你关闭了StreamWriter,然后在第二部分再次尝试写入它,当它关闭时,可能想看看它。