これは本当の頭のスクラッチャーです。すべての文書によれば、完了後に読み取っているファイルは、file.readAllLines
で閉じるべきです。しかし、私のアプリでは、ファイルに書き込もうとすると、「プロセスが別のプロセスで使用されているため、ファイルにアクセスできません」というIO例外がスローされます。そして、これは本当にシンプルでなければなりません。問題のファイルは、最初に起動したときにアプリに読み込まれた後、上書きされたときに2回しか参照されません。ここでは、コードです:まずVB 2012 - StreamReader not closed
、ファイルを開くコード(ファイルパスに使用され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回です。
最初のメソッドを呼び出さずに、最後の2行を含むコードの少なくとも2倍_を呼び出すとどうなりますか? – Steve
OpenTextFileWriterで開いたファイルストリームを閉じましたか? –