my.computer在file.create之后无法访问文件

时间:2012-12-15 11:06:30

标签: vb.net

我有一些代码可以删除文件,再创建一个文件(这样我就可以覆盖它)并在其上书写。

            My.Computer.FileSystem.DeleteFile("./pass")
            File.Create("./pass")
            My.Computer.FileSystem.WriteAllText("./pass", MaskedTextBox1.Text, True)

当它写下文字时,它说:

An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll

Additional information: The process cannot access the file '[path]\pass' because it is being used by another process.

有没有办法解决这个问题,或者只是覆盖文件而不删除并重新制作文件?

1 个答案:

答案 0 :(得分:7)

  

因为它正被另一个进程使用

这不完全准确,它正由您的进程使用。 File.Create()返回一个FileStream对象。你没有调用它的Close()方法,因此它仍在使用中。 File.Create()。Close()可以解决问题。

但是这里没有使用File.Create(),FileSystem.WriteAllText()已经创建了文件。删除文件也没有意义,WriteAllText()会覆盖文件。所以只需删除前两个语句来解决问题。