在 vb.net 中,是否可以在程序写入文件时手动打开和读取文件?
我希望能够打开一个文本文件(使用记事本或其他编辑器)来监控写作应用程序的进度。我们可以用 vb6 做到这一点。在 vb.net 我试过这个:
FileOpen(fileNum, logFilePath & logFileName, OpenMode.Append, OpenShare.Shared)
但即使它以共享方式打开,我在尝试打开文件时仍然收到访问错误:
访问文件时发生共享冲突
在 vb.net 中,是否可以在程序写入文件时手动打开和读取文件?
我希望能够打开一个文本文件(使用记事本或其他编辑器)来监控写作应用程序的进度。我们可以用 vb6 做到这一点。在 vb.net 我试过这个:
FileOpen(fileNum, logFilePath & logFileName, OpenMode.Append, OpenShare.Shared)
但即使它以共享方式打开,我在尝试打开文件时仍然收到访问错误:
访问文件时发生共享冲突
只要文件未锁定,就可以。在程序中打开文件时,您可以指定要使用哪种锁定规则。如果另一个程序打开了文件,则您无法控制该程序打开文件的方式。两个程序必须同意共享文件才能共享,所以如果另一个程序使用了非共享模式,你就会被卡住。
如何打开允许共享的文件进行写入的示例:
Using writeStream = File.Open("F:\ile.path", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite), _
writer As New StreamWriter(writeStream)
' Use the file here
End Using
然后在另一个程序中:
'Same path as prior file.
Using readStream = File.Open("F:\ile.path", FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite), _
reader As New StreamReader(readStream)
' Use the file here
End Using
您可以尝试将其作为一个过程来执行。我不确定这是否适用于您的情况,但尝试以下方法并没有什么坏处:
Dim p As New System.Diagnostics.Process
Dim s As New System.Diagnostics.ProcessStartInfo("C:yourfile.txt")
s.UseShellExecute = True
s.WindowStyle = ProcessWindowStyle.Normal
p.StartInfo = s
p.Start()
如果您有任何错误,请告诉我,我们可以尝试解决它们。