当我使用opentextfile时出现错误。问题很奇怪,因为它适用于几百个文件,然后弹出。
基本上,脚本获取一组文件,在其中搜索一个字符串,然后将其删除并将修改后的内容写回到同一文件中。当脚本想要再次打开文件以便它可以将修改后的内容写入其中时,会出现问题。
这是代码:
For Each objFile in colFiles
Set objCurrentFile = objFSO.OpenTextFile(objFile.Path, ForReading)
'Get file contents - exclude end tag '
Do Until objCurrentFile.AtEndOfStream
strLine = objCurrentFile.ReadLine
If InStr(strLine, strSearchTerm) = 0 Then
strNewContents = strNewContents & strLine & vbCrLf
End If
Loop
objCurrentFile.Close
objCurrentFile = nothing
'Write new file contents to existing file '
Set objNewFile = objFSO.OpenTextFile(objFile.Path, ForWriting) 'PROBLEM LINE '
objNewFile.Write strNewContents
objNewFile.Close
objNewFile = nothing
Next
答案 0 :(得分:0)
该文件是只读的。
在打开要写入的文本文件之前尝试添加此项。
如果文件是只读的,它将删除只读属性。
IsReadOnly = False
IF objFile.Attributes AND 1 Then
objFile.Attributes = objFile.Attributes - 1
IsReadOnly = True
End If
然后在写完文件后添加。
如果文件是只读的,则将其设置为只读。
If IsReadOnly Then
objFile.Attributes = objFile.Attributes + 1
IsReadOnly= False
End If
答案 1 :(得分:0)
我发现了这个问题。我打开文本文件,然后将其复制到另一个文件夹,然后在关闭流之前对文件执行更多操作。
一旦我将复制文件代码移动到我打开流之前它就完美无缺。
感谢您的帮助,我将在未来使用您的代码,以便在处理文本文件时安全。
答案 2 :(得分:0)
你可以尝试givin对要读取的文件所在的文件夹的总控制权限。