复制文件(没有使用FileUtils)

时间:2014-06-09 13:34:54

标签: ruby file io copy marshalling

所以我认为Marshal是解决它的最好方法。我加载文件并立即转储它。但我得到这个错误: "不兼容的编组文件格式(无法读取)格式版本4.8要求; 91.112给出"

  def self.copy_file(src, dest)
    File.open(src) do |src_file|
      File.open(dest, 'w') do |dest_file|
        Marshal.dump(Marshal.load(src_file), dest_file)
      end
    end
  end

我无法使用FileUtils,因为我使用了某种“Ruby”变体'没有那个图书馆。我并不知道任何独立且可再发行的免费FileUtils.dll。即使它是,我仍然更喜欢我的脚本没有任何额外的.dll文件。 没有FileUtils,File.copy()似乎不存在。

1 个答案:

答案 0 :(得分:2)

怎么样:

def self.copy_file(src, dest)
  File.write(dest, File.read(src))
end

或者对于没有File.write的更古老版本的红宝石:

def self.copy_file(src, dest)
  File.open(dest, 'w') { |f| f.write(File.read(src)) }
end