// (1) create test file and delete it again
File.Create(Path.Combine(folder, "testfile.empty"));
File.Delete(Path.Combine(folder, "testfile.empty"));
最后一行抛出异常:
该进程无法访问该文件 '\\ MYPC \ C $ _As \ RSC \ testfile.empty' 因为它被另一个人使用 过程
为什么?
答案 0 :(得分:21)
File.Create
递给你一条小溪,你没有关闭。
using(var file = File.Create(path)) {
// do something with it
}
File.Delete(path);
应该工作;或者更容易:
File.WriteAllBytes(path, new byte[0]);
File.Delete(path);
甚至只是:
using(File.Create(path)) {}
File.Delete(path);
答案 1 :(得分:4)
当你创建文件时,你正在使用它,直到你关闭它 - 你没有这样做,因此错误。
要关闭文件,您应该将创建包装在using
语句中:
using(var file = File.Create(Path.Combine(folder, "testfile.empty")))
{
}
File.Delete(Path.Combine(folder, "testfile.empty"));
答案 2 :(得分:1)
试试..
File.Create(Path.Combine(folder, "testfile.empty")).Dispose();
File.Delete(Path.Combine(folder, "testfile.empty"));
答案 3 :(得分:1)
Create
方法返回一个必须在进行其他操作之前关闭的文件流:
FileStream fs=File.Create( "testfile.empty");
fs.Close();
File.Delete("testfile.empty");