看似简单:如何打开使用中的text文件

xeen4 2003-07-14 11:09:31
偶写一个小程序。
打开一个log文件(text格式),分析内容。但,这个log文件被另一程序占用,向其中记录日志内容。

偶用如下语句:
==================================
Dim vLogSr As StreamReader
Dim vReadLine As String
Dim vFileName As String

vLogSr = File.OpenText(labLogDir.Text + labLogFileName.Text)

===================================
....报错,说另一程序正使用中。

请教大虾觅们,在这种情况如何做............. 谢了.
...全文
403 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
BeyondLove2000 2003-08-26
  • 打赏
  • 举报
回复
恐怕是你映射盘权限的问题……
xeen4 2003-08-26
  • 打赏
  • 举报
回复
问题解决了。用了最简单的FileOpen, seek 成功了...而更高级的filestream类却不行!
不懂为什么,可能是vb.net的bug 吧

如下:

=================================================
vFileName = "c;\log.txt"

fnum = FreeFile()
FileOpen(fnum, vFileName, OpenMode.Input, OpenAccess.Read, OpenShare.Shared)

vStartPosition = CLng(labLastReadPosition.Text)
If vStartPosition <> 0 Then Seek(fnum, vStartPosition)

vReadLine = LineInput(fnum)

While Not EOF(fnum)
....................
End While
FileClose(fnum)
===============================================================


但要谢谢大家帮助。


-------------谁能分析合理原因给20分

xeen4 2003-07-16
  • 打赏
  • 举报
回复
我再试一试
lht0530 2003-07-15
  • 打赏
  • 举报
回复
up
isage2002 2003-07-15
  • 打赏
  • 举报
回复
我试了一下,这样可以
Dim vLogSr As System.IO.FileStream
Dim vReadLine As String
Dim vFileName As String

vLogSr = System.IO.File.OpenRead("c:\button.txt")

Dim b(1024) As Byte

Dim temp As System.Text.UTF8Encoding = New System.Text.UTF8Encoding(True)

Do While vLogSr.Read(b, 0, b.Length) > 0
Console.WriteLine(temp.GetString(b))
Loop
vLogSr.Close()
panyee 2003-07-15
  • 打赏
  • 举报
回复
myFileStream = new FileStream(FilePathName, FileMode.Open, FileAccess.Read);
xeen4 2003-07-15
  • 打赏
  • 举报
回复
看来没有好办法了....只能要求修改写日志的程序,不要独占打开文件。
panyee 2003-07-15
  • 打赏
  • 举报
回复
oh, up
visualcpu 2003-07-15
  • 打赏
  • 举报
回复
文件不能用独占的方式打开应该可以!
xeen4 2003-07-15
  • 打赏
  • 举报
回复
先谢过了。但是这个方法试过,不管用??

我用的是:
vLogSr = File.Open(labLogDir.Text + labLogFileName.Text, FileMode.Open, FileAccess.Read, FileShare.Read)

error msg:
An unhandled exception of type 'System.IO.IOExeption' occurred in mscorlib.dll

Additional informaiton: The process cann't access the file "z:\test.log" because it is being used by another process.

z:盘是网络映射盘,只度权限
xeen4 2003-07-14
  • 打赏
  • 举报
回复
log文件太大,130MB,拷贝不是个好方法.......
orcale 2003-07-14
  • 打赏
  • 举报
回复
已經被別的程序占用了,肯定不能打開了
不過有個辦法
你可以用filecopy再copy一份,讀另一份的內容!

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧