在vb.net中,是否可以在程序写入文件时手动打开和读取文件?
我希望能够打开文本文件(使用记事本或其他编辑器)来监控写入应用程序的进度。我们可以用vb6做到这一点。在vb.net中我试过这个:
FileOpen(fileNum, logFilePath & logFileName, OpenMode.Append, OpenShare.Shared)
但即使它以共享方式打开,我在尝试打开文件时仍会收到访问错误:
访问文件
时发生共享冲突
答案 0 :(得分:2)
只要文件未锁定,就可以。在程序中打开文件时,可以指定要使用的锁定规则类型。如果另一个程序打开了文件,则无法控制该程序打开文件的方式。 两个程序必须同意共享文件才能共享,因此如果其他程序使用的模式不共享,则会被卡住。
如何打开文件以进行分享的示例:
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
答案 1 :(得分:0)
您可以尝试将此作为一个过程。我不确定这是否适合您的情况,但尝试不会有害:
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()
如果您有任何错误,请告诉我们,我们可以尝试解决这些问题。