我用Ruby 2.0在Windows 7(不幸的是我必须)工作,并有问题与此代码:
FileUtils.touch(file)
需要该代码更新file.ctime(这将可能也有问题),所以,当文件被处理我“触摸”他们,下一次迭代不处理他们。
我该如何处理它错误?
ruby_path/fileutils.rb:1137:in 'utime': Permission denied 'path_to_file' Errno::EACCES
'block in touch'
'each'
'touch'
例:
file = File.new('file_path')
FileUtils.mkdir_p(path)
FileUtils.cp(file.path, path)
FileUtils.touch(file)
我用红宝石1.9和2.0进行测试。 FileUtils.touch
工作没有问题。
你可以提供一个MWE。 你检查要检查该文件的权限。
特别是:你确定,你不碰的目录?
如果你不想检查目录,则可以通过扩展文件实用程序FileUtils.save_touch
:
require 'fileutils'
module FileUtils
def self.save_touch(fpath)
FileUtils.touch(fpath) unless File.directory?(fpath)
end
end
FileUtils.save_touch(Dir.pwd)
问题的更新后:
FileUtils.touch
有一个参数:一个文件名或文件路径。
你必须去适应你的例子:
file = File.new('file_path')
FileUtils.mkdir_p(path)
FileUtils.cp(file.path, path)
FileUtils.touch(file.path)