vb.net在写入文件时手动打开文件

时间:2013-11-07 17:36:00

标签: vb.net

在vb.net中,是否可以在程序写入文件时手动打开和读取文件?

我希望能够打开文本文件(使用记事本或其他编辑器)来监控写入应用程序的进度。我们可以用vb6做到这一点。在vb.net中我试过这个:

FileOpen(fileNum, logFilePath & logFileName, OpenMode.Append, OpenShare.Shared)

但即使它以共享方式打开,我在尝试打开文件时仍会收到访问错误:

  

访问文件

时发生共享冲突

2 个答案:

答案 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()

如果您有任何错误,请告诉我们,我们可以尝试解决这些问题。