所以我认为Marshal是解决这个问题的最好方法。我加载文件并立即转储它。但我收到这个错误: “不兼容的编码(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() 似乎就不存在。
最佳答案
怎么样:
def self.copy_file(src, dest)
File.write(dest, File.read(src))
end
或者对于没有 File.write
的更古老版本的 ruby:
def self.copy_file(src, dest)
File.open(dest, 'w') { |f| f.write(File.read(src)) }
end
关于ruby - 复制文件(不使用 FileUtils),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24121446/