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() はファイルを上書きします。したがって、問題を解決するには、最初の 2 つのステートメントを削除するだけです。

于 2012-12-15T12:33:14.817 に答える