2013-03-27 2 views
0

나는Streamreader는 어떤 프로세스를 사용합니까?

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

있는 간단한 프로그램을 만들어

sr.Dispose(); 

등을 넣어 깜빡 지금은 프로그램을 실행하고 나는 "라고 그 IOException가이 처리되지 않은 오류 메시지가 있었다 얻을 파일을 열려고 할 때 프로세스가 다른 프로세스에서 사용 중이므로 파일에 액세스 할 수 없습니다. " 그래서 내 질문은, 어떤 프로세스가 사용하고 있는지 알 수 있습니까? taskmanager에서 그것을 찾을 수 있고, 예외 처리 코드를 작성하는 대신이 코드를 끝낼 수 있기를 원합니다.이 코드는 연습용으로 사용하기위한 프로그램 일뿐입니다.

내가 열려고 한 파일은 MyDocuments의 txt 파일입니다.

+3

죄송합니다.이 경우 할 수있는 일은 하드 드라이브로 하드 드라이브에 반복적으로 도달하는 것입니다. 집 안의 다른 전자 장치도 잠기지 않도록 뒤뜰에 묻어 두십시오. 그러나 문제의 과정은 자신의 프로그램 일 가능성이 큽니다. 종료되었는지 확인하십시오. sysinternals processmonitor라는 도구를 가져 오면 리소스를 잠그는 프로세스를 알려주는 기능이 있습니다. – JerKimball

+0

글쎄, 난 그냥 쓰레기 접근 방식을 취하는 대신 내 컴퓨터를 다시 시작했고, 나는 다음 번에 그렇게하고 싶지 않다. 그래서 나는 컴퓨터를 종료 할 때 컴퓨터를 끄는 모든 프로세스 중에서 여전히 알고 싶다. 그게 내가 방금 끝낼 수 있었던 거였어? – KevinPaul

+0

그리고 sysinternals에 대한 정보를 가져 주셔서 감사합니다. 나는 그것을 얻을지도 모른다. – KevinPaul

답변

2

파일을 사용하는 프로세스는 Visual Studio에서이 파일을 실행하는 경우 .vshost.exe 가능성이 매우 높습니다.

나중에 using 문을 사용하여 개체를 처리하는 것을 잊어 버리지 않으려면 IDisposable (StreamReader)을 구현하십시오. 저도 같은 오류가 발생했습니다

using(StreamReader sr = new StreamReader(File.OpenRead(dlg.FileName))) 
{ 
    txtBox1.Text = sr.ReadToEnd(); 
} 
0

처럼 그래서 난 다음에 파일의 텍스트 후 새로운 텍스트를 추가 할 수있는 파일의 텍스트의 끝을 찾기 위해 위해 StreamReader를 사용 할 때 코드는 보일 것이다 기록 방법. 내 문서에는 어쨌든 개발할 때 접근성 문제가 있습니다. 어쩌면 temp 폴더에 .txt를 넣으십시오.

관련 문제