打开并读取文件而不将其锁定在vbs中(不是.NET)

时间:2014-04-29 10:17:30

标签: vba vbscript

我尝试使用这种代码读取vbs中的(日志)文件(不希望使用VB.net,因此必须保留VB6以供其他考虑)

' FileName containt the full file path and name (assume it exist and available)
' cstForReading is set before and OK

Set objFSO = CreateObject( "Scripting.FileSystemObject")
Set objInput = objFSO.OpenTextFile( FileName, cstForReading)

while NOT ( objInput.AtEndOfStream)
   strNextLine = objInput.ReadLine
   ' some code like
   wscript.stdout.Write strNextLine
 wend

但在代码执行期间,文件被锁定,不能被其他应用程序删除(但可以进行修改)。对于大文件(可能达到几个Gb)尤其如此,因此无法复制(上下文不允许这样做),也不会立即加载到内存中。

是否有另一种方法可以将文本文件打开为只读而不锁定文件(我的代码必须在执行期间处理丢失的文件)?

1 个答案:

答案 0 :(得分:0)

如果文件被加载到内存中,那么它可以被其他程序删除吗?虽然它是只读的,但它是否有效使用?也许这个伪代码可以帮助

vbs文件(上面)检查日志文件。

Create a copy of the log file
load the copy into memory
read the copy log file

可能删除日志文件的其他程序

if applicable delete the original copy file

vbs文件

after reading file close the copy log
delete the copy log file

我认为这种方式可以为您提供所需的内容,您可以从日志中读取并删除文件(如果需要)。