没有权限删除Windows上的文件?

时间:2014-09-18 23:40:44

标签: ruby

我在Windows 8上使用Ruby 2.0。

我的程序存在一些房屋清理:它会在特定日期之前扫描日志文件夹中是否包含某个类型的文件,包含一个certian子字符串,如果确定它们,则使用File.delete删除它们对我没用。

问题来自于我总是遇到Permission denied错误,即使我从提升的命令提示符运行Ruby程序也是如此。我已经用Google搜索了问题,每个人都说只是提升命令提示符,但我,而且它没有改变任何东西。我错过了什么?

Dir.glob('C:/Users/sarah_000/AppData/Roaming/ScanLog/*.log') do |f|
  file = File.open(f)
  if file.read[0..29].include? "success" and file.mtime < Time.new(2014,9,1) then
    File.delete(file)
  end
end

1 个答案:

答案 0 :(得分:0)

另一个进程可能对您要删除的文件具有打开句柄。尝试在同一目录中创建一个额外的虚拟文件,看看是否可以删除它。尝试终止任何可能打开文件的程序。

实际上我只是注意到你的Ruby程序打开了文件。尝试使用.close关闭文件,然后再删除它。

相关问题