我遇到了这个错误
该进程无法访问,因为它正由另一个进程使用。
错误显示在var br = new BinaryReader(new FileStream(fileName, FileMode.Open));
我试图这样做,因为我希望字节是动态的。
foreach (string dir in dirs)
{
string fileName = Path.GetFileName(dir);
using (Stream source = System.IO.File.OpenRead(dir))
{
byte[] buffer;
var br = new BinaryReader(new FileStream(fileName, FileMode.Open));
buffer = br.ReadBytes((int)br.BaseStream.Length);
}
}
答案 0 :(得分:1)
你不能这样做:
using (var source = new FileStream(dir, FileMode.Open))
{
byte[] buffer;
var br = new BinaryReader(source);
buffer = br.ReadBytes((int)br.BaseStream.Length);
}
替代方案,您可以这样做:
File.ReadAllBytes(dir);
答案 1 :(得分:1)
首次打开文件:
System.IO.File.OpenRead(dir)
这里你试图第二次打开同一个文件:
new FileStream(fileName, FileMode.Open)
当然该文件已被占用。
重写代码如下:
using (var source = File.OpenRead(dir))
using (var br = new BinaryReader(source))
{
byte[] buffer = br.ReadBytes((int)br.BaseStream.Length);
}