【发布时间】:2020-02-06 15:31:13
【问题描述】:
我曾尝试使用解决方案(如下所示)解决 4 年前提出的“使用 VB.Net 读取和写入文本文件中的特定行”问题
Dim filePath As String = "E:\myFile.txt"
Dim lines() As String = System.IO.File.ReadAllLines(filePath)
If lines.Length > 4 AndAlso lines(4).StartsWith("ORIGIN ") Then
lines(4) = "ORIGIN ""250"""
System.IO.File.WriteAllLines(filePath, lines)
End If
但是每次遇到如下错误:
进程无法访问文件“file_path”,因为它正在 被另一个进程使用。
知道为什么会这样吗?
【问题讨论】:
-
你被其他应用打开了? :)
-
"System.IO.File.WriteAllLines(filePath, lines)" 这是给出错误的行。提前谢谢你:))
-
我没有。但是,我正在使用 StreamReader 对象读取同一个文件,以存储找到该字符串的行数。例如如果在第二行找到 ORIGIN "250",那么我将 2 存储在一个整数变量中;比如说 i。我以以下方式使用它-lines(i-1) = "ORIGIN""250"""。在使用上述代码之前,我什至使用了 StreamReader 对象的 .dispose 和 .close 但这没有帮助。
-
您可以使用 Process Explorer 或类似的工具来查找文件是否被某个进程打开。
-
用Using statement 声明
StreamReader。请参阅那里的示例。