C#文件流 文件被另一个进程使用 下面程序 每次都返回null 逐步运行时提示文件被另一进程使用。

C#文件流 文件被另一个进程使用 下面程序 每次都返回null 逐步运行时提示文件被另一进程使用。,第1张

应该首亏晌是你要 *** 作的文件被其他程序占用了。

换一个文件,或者重新启者锋动一下试试,或者检查一下其他程序对它的使用,或者检查一下权限。

而且你的程序还有其他的错空纯,如下:

private void EncryptToFile(String str)

{

MessageBox.Show(str)

TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider()

try

{

FileStream fileStream = File.Open(fileName, FileMode.Create)

fileStream.WriteByte(Convert.ToByte(tdes.Key.Length))

fileStream.Write(tdes.Key, 0, tdes.Key.Length)

fileStream.WriteByte(Convert.ToByte(tdes.IV.Length))

fileStream.Write(tdes.IV, 0, tdes.IV.Length) //这里,IV

CryptoStream cryptoStream = new CryptoStream(fileStream, tdes.CreateEncryptor(tdes.Key, tdes.IV), CryptoStreamMode.Write)

StreamWriter streamWriter = new StreamWriter(cryptoStream)

streamWriter.Write(str)

streamWriter.Close()

cryptoStream.Close()

fileStream.Close()

}

catch (Exception)

{

MessageBox.Show("加密失败", "", MessageBoxButtons.OK, MessageBoxIcon.Error)

}

}

private string DecryptFromFile()

{

if (File.Exists(fileName) == false)

{

EncryptToFile("admin")

}

try

{

// FileStream fileStream = File.Open(fileName,FileMode.Open)

FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)

int len = fileStream.ReadByte()

Byte[] byKey = new byte[len]

fileStream.Read(byKey, 0, len)//这里,len

int leng = fileStream.ReadByte()

Byte[] byIV = new byte[leng]

fileStream.Read(byIV, 0, leng) //这里,leng

TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider()

CryptoStream cst = new CryptoStream(fileStream, tds.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read)//这里,解密用Read

StreamReader streamReader = new StreamReader(cst)

string decryptedString = streamReader.ReadToEnd()

streamReader.Close()

cst.Close()

fileStream.Close()

return decryptedString

}

catch (Exception)

{

return null

}

null不是有效的win32应用程序是设置差宏茄错误造成的,解决方法为:

1、右击要打开的文件,如下。

2、我们点击属性,如下。

3、点击更改,如下。

4、找到office2010安装的路径,如下。

5、我们找到适合的exe文件,如下。

6、我们选定后再点击“打开”,如下。

7、再点击“确定”,然后我们再虚察双击要打开的文件就绝没可以打开了。

NULL 就是一个特殊的指针值, 其实本质是一个宏

#define NULL (void *)0

也就是档行0值, 强制转成了指针。

用来表示一个指针非法。 所以在初始化的时候经常用NULL来初态蠢猛始化。

由于是非法指针, 所以对这个指针取值(* *** 作)会导致程序崩溃。 必须要先指向帆桥一个有效空间才可以。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12420807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存