OpentextFile权限被拒绝错误

时间:2009-06-10 08:23:14

标签: vbscript

当我使用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

3 个答案:

答案 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对要读取的文件所在的文件夹的总控制权限。