尝试创建文件并立即将其删除

时间:2011-03-15 14:29:53

标签: c# file

// (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'   因为它被另一个人使用   过程

为什么?

4 个答案:

答案 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");