이것은 실제 머리를 긁는 사람입니다. 모든 문서에 따르면 file.readAllLines
은 완료 후 읽는 파일을 닫아야합니다. 그러나 내 응용 프로그램에서 파일에 쓰려고하면 "프로세스가 다른 프로세스에서 사용 중이므로 파일에 액세스 할 수 없습니다"라는 IO 예외가 발생합니다. 그리고 이것은 정말로 간단해야합니다. 문제의 파일은 두 번만 참조됩니다. 첫 번째 시작시 앱으로 읽은 다음 한 번 덮어 쓰면 다시 한 번 참조됩니다. 여기에 코드입니다 : 첫째VB 2012 - StreamReader가 닫히지 않음
파일을 여는 코드 (파일 경로 사용되는 c:\Test\cfg.fcs
) :
Public Function ReadALine(ByVal File_Path As String, ByVal TotalLine As Integer, ByVal Line2Read As Integer) As String
Dim Buffer As Array
Dim Line As String
If TotalLine <= Line2Read Then
Return "No Such Line"
End If
Buffer = File.ReadAllLines(File_Path)
Line = Buffer(Line2Read)
Return Line
End Function
그것은 완벽하게 작동하고, 이 오른쪽 제대로 닫혀 파일을 떠나야한다? 하지만 나중에 다른 모듈에서 다음을 실행할 때 :
파일이 아직 사용 중임을 나타내는 예외가 발생합니다. 그것들은 파일 전체가 언급 된 두 번뿐입니다.
첫 번째 메서드를 호출하지 않고 _ 마지막 두 줄을 포함하는 코드 _2 이상을 _ 호출하면 어떻게됩니까? – Steve
OpenTextFileWriter에서 연 파일 스트림을 닫았습니까? –