4

我有一些代码可以删除一个文件,制作另一个文件(这样我就可以覆盖它)并在上面写。

            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.

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

4

1 回答 1

7

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

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

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

于 2012-12-15T12:33:14.817 回答