【问题标题】:Permission denied when using ActiveX DeleteFile使用 ActiveX DeleteFile 时权限被拒绝
【发布时间】:2013-05-30 15:56:55
【问题描述】:

我有一个运行良好的脚本,直到它尝试删除它创建的临时文件,然后我收到一条 Permission Denied 错误消息。

命令很简单:

fso.DeleteFile(tempWAVPath)

其中fsoActiveXObject("Scripting.FileSystemObject")tempWAVPath 是:C:\Users\XXX\AppData\Local\Temp\RandomTempName\TemporaryFile

考虑到脚本同时创建了文件夹和文件,我很困惑为什么会出现 Permission denied 错误。

脚本正在通过 Admin CMD 和 cscript 运行

有人知道为什么吗?

【问题讨论】:

    标签: javascript windows activex wsh


    【解决方案1】:

    另一种处理只读文件的方法是传递第二个布尔参数,如下所示:

    fso.DeleteFile(tempWAVPath, true);
    

    【讨论】:

    • 特定情况下的命令对我来说仍然失败。似乎可能存在某种文件锁定 - 有什么方法可以检查/清除它?
    【解决方案2】:

    对于特定文件,其他答案对我来说都没有成功。

    然而,这确实 100% 有效:

    file = fso.GetFile(FILE_PATH);
    file.Delete(true);
    

    【讨论】:

      【解决方案3】:

      啊!该文件是只读的。通过添加以下内容来修复它:

      file = fso.GetFile(tempWAVPath)
      if(file.attributes & 1) {
          file.attributes = file.attributes - 1
      }
      

      【讨论】:

        猜你喜欢
        • 2020-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 1970-01-01
        相关资源
        最近更新 更多