我搜索了很多关于这个Exception的解决方案,但还没有任何结果。 这是我的代码, 正在抛出异常:
BinaryWriter BW = new BinaryWriter(FI.Open(FileMode.Open));
请注意,每次都不会引发异常..我知道这很奇怪。 有谁有想法?
FileInfo FI = new FileInfo("e:\\cc.accdb");
if (FI.Exists)
FI.Delete();
GC.Collect();
FI.Create();
byte[] bb = { 54, 87, 98, 57, 65 };
BinaryWriter BW = new BinaryWriter(FI.Open(FileMode.Open));
BW.Write(bb);
答案 0 :(得分:4)
我的猜测是因为你没有关闭文件的句柄。完成后需要释放句柄,否则它会持续存在。将Writer对象包装在using
块中,以便在完成时处理它。
如果不是你的应用程序带有文件句柄,请运行procmon以查看哪个进程锁定了该特定文件。
Here是一个下载Process Monitor的链接,以防您没有它。这是一个非常宝贵的工具,如果你不需要它......你会的。
答案 1 :(得分:3)
如果您将代码更改为类似的内容,它将起作用:
string path = "e:\\cc.accdb";
byte[] bb = { 54, 87, 98, 57, 65 };
BinaryWriter BW = new BinaryWriter(File.Open(path, FileMode.Create));
BW.Write(bb);