VB 2012 - StreamReader not closing



这是一个真正的挠头问题。根据所有文档,file.readAllLines应在完成后关闭它正在读取的文件。但是在我的应用程序中,当我尝试写入文件时,它会抛出一个 IO 异常,指出"进程无法访问该文件,因为它正被另一个进程使用"。这应该非常简单 - 有问题的文件只被引用两次 - 一次是在第一次启动时读入应用程序时,然后是当您覆盖它时。代码如下:

首先,打开文件的代码(使用的文件路径为 c:Testcfg.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

它运行良好,应该正确关闭文件,对吧? 但是当我稍后在另一个模块中运行以下内容时:

file = My.Computer.FileSystem.OpenTextFileWriter("c:Testcfg.fcs", False)
file.WriteLine(Form1.GlobalVariables.serialNumber)

它会抛出一个异常,指出该文件仍在使用中。这是整个应用程序中仅有的两次甚至提到该文件。

对于遇到此问题的其他人来说,解决方案很简单,但仍然违反直觉......问题只是命令的顺序。我将 file.writeline 向下移动到子的底部,出于某种原因修复了它。奇怪

相关内容

  • 没有找到相关文章

最新更新