【发布时间】:2014-08-13 12:15:29
【问题描述】:
我正在使用文件流访问文件(制作 md5 ComputeHash)。如果我在此期间尝试重命名文件(由于正在访问文件而失败)。到目前为止一切顺利,但是当我在关闭原始文件流后尝试重新打开文件时,我得到了文件在另一个进程中打开的信息。
代码:
using (Stream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
MD5 md5 = MD5.Create();
byte[] mymd5computed = md5.ComputeHash(fileStream);
......
}
Thread.Sleep(50);
Thread a = new Thread (()=>{(FileStream sourceStream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)){....} });
就像我说的,如果在计算 MD5 期间我尝试重命名文件,我会得到文件仍然被锁定的信息。
【问题讨论】:
标签: c#