0

で簡単なプログラムを作りました

StreamReader sr = new StreamReader(File.OpenRead(dlg.FileName));                
txtBox1.Text = sr.ReadToEnd();

そして入れ忘れ

sr.Dispose();

そして今、プログラムを実行してファイルを開こうとすると、「別のプロセスで使用されているため、プロセスはファイルにアクセスできません」という IOException was unhandled エラー メッセージが表示されます。私の質問は、それがどのプロセスを使用しているか知っている人はいますか? これは私が練習のために使用している単なるプログラムであるため、一連の例外処理コードを記述する代わりに、タスクマネージャーでそれを見つけて終了できるようにしたいと考えています。

開こうとしたファイルは MyDocuments の txt ファイルです。

4

2 に答える 2

2

ファイルを使用しているプロセスは、ファイルを開いたプロセスであり、これを Visual Studio から実行している場合、.vshost.exe である可能性が非常に高くなります。

実装するusingものすべてに statementforを使用して、将来オブジェクトを破棄することを「忘れる」ことを避けるため。あなたのコードは次のようになりますIDisposableStreamReader

using(StreamReader sr = new StreamReader(File.OpenRead(dlg.FileName)))
{
    txtBox1.Text = sr.ReadToEnd();
}
于 2013-03-31T02:56:50.253 に答える
0

streamreader を使用してファイル内のテキストの終わりを見つけたときに同じエラーが発生したため、writeline メソッドを使用してファイル内のテキストの後に新しいテキストを追加できました。とにかく開発に関して言えば、My Documents にはアクセシビリティの問題があります。.txt を別の場所 (おそらく /temp フォルダー) に入れてみてください。

于 2013-04-04T19:48:29.443 に答える