1

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

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

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

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

访问文件时发生共享冲突

4

2 回答 2

3

只要文件未锁定,就可以。在程序中打开文件时,您可以指定要使用哪种锁定规则。如果另一个程序打开了文件,则您无法控制该程序打开文件的方式。两个程序必须同意共享文件才能共享,所以如果另一个程序使用了非共享模式,你就会被卡住。

如何打开允许共享的文件进行写入的示例:

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
于 2013-11-07T17:40:56.880 回答
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()

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

于 2013-11-07T17:41:37.747 回答