UTIME允许在Windows 7拒绝调用FileUtils.touch时(F)(utime per

2019-11-02 18:57发布

我用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)

Answer 1:

我用红宝石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)


文章来源: utime permission denied in windows 7 when call FileUtils.touch(f)