我在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
答案 0 :(得分:0)
另一个进程可能对您要删除的文件具有打开句柄。尝试在同一目录中创建一个额外的虚拟文件,看看是否可以删除它。尝试终止任何可能打开文件的程序。
实际上我只是注意到你的Ruby程序打开了文件。尝试使用.close
关闭文件,然后再删除它。