【发布时间】:2018-03-11 02:21:34
【问题描述】:
我编写了以下代码来保留与传入名称匹配的文件并删除文件夹中的其余文件。
def removeFiles2(path, namePart)
aft_logger=AFTLogger.new
Dir[path+'/*'].each do |fname|
break if !(fname.include? namePart)
else File.delete(fname)
end
end
end
end
但我收到以下错误。
Operation not permitted - Operation not permitted - //CSLK-CISP-81-01/jboss/server/TeamCI_CEPHEUS_OR_R81_Spider_110/home/RoSModule/XML/In/Error:
Operation not permitted - Operation not permitted - //CSLK-CISP-81-
01/jboss/server/TeamCI_CEPHEUS_OR_R81_Spider_110/home/RoSModule/XML/In/Error tempDevMode.rb line 37 in function test
我在这里做错了什么?任何帮助将不胜感激。
【问题讨论】:
-
那是你的实际代码吗?由于修饰符
if-else构造(没有这样的事情),它会引发 语法错误。你可以写break if condition,但不能写break if condition else ... -
@Stefan 你错过了未对齐的
end:) 实际上是break (if .. else .. end)。 -
是的,这个 break 非常令人困惑 :) 它绝对是一个语法错误(如所写,if/else 周围没有明确的括号)
-
@mayooran 你可以写
break unless fname.include? namePart和下一行File.delete(fname),即没有else和end
标签: ruby file if-statement io automation