Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用VB.NET2读写文本文件中的特定行_Vb.net_File_Overwrite - Fatal编程技术网

用VB.NET2读写文本文件中的特定行

用VB.NET2读写文本文件中的特定行,vb.net,file,overwrite,Vb.net,File,Overwrite,我曾尝试使用解决方案(如下所示)解决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""

我曾尝试使用解决方案(如下所示)解决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\u path”,因为它正在被删除 被另一个进程使用


你知道为什么会这样吗?

你的代码对我来说还可以
System.IO.File.ReadAllLines()
应该在之后关闭该文件

可能是其他原因阻止了对文件的写访问。(您正在使用的某个应用程序,用于查看它是否正常工作?!)要检查该应用程序,请更换

Dim lines() As String = System.IO.File.ReadAllLines(filePath)


然后查看它是否仍然失败。

您让另一个应用程序打开了它?:)“System.IO.File.writeAllines(文件路径,行)”这是给出错误的行。先谢谢你:)我不知道。但是,我正在使用StreamReader对象读取同一个文件,以存储找到该字符串的行数。例如,如果在第二行找到原点“250”,则我将2存储在整数变量中;我说。我以以下方式使用它-行(I-1)=“原点”250“。在使用上述代码之前,我甚至使用了StreamReader对象的.dispose和.close,但这没有帮助。您可以使用Process Explorer或类似的工具来查找文件是否由某个进程打开。使用。请看下面的示例。
Dim lines() As String = {"0","1","2","3","ORIGIN 4", "5"}