Just do IT

思うは招く

[Ruby] ファイルをコピーする基本

Rubyでファイルをコピーする方法。 Fileクラスを使う。

open("bar.txt") do |input|
  open("foo.txt", "w") do |output|
    output.write(input.read)
  end
end

まずはopen.txtというファイルを開き、データをinputとして引数にとる。 その後、書き込みたいファイルfoo.txtを開き(作り)、書き込みモードwを指定する。

writeメソッドの引数にinputを渡し、open.txtの中身をfoo.txtにコピーする。

ただし、毎回こんなことをするのは面倒なので、ファイルをコピーしたり移動したりできるfileutilsライブラリが用意されている。

require "fileutils"

# bar.txtの中身をfoo.txtにコピー
FileUtils.cp("bar.txt", "foo.txt")

# bar.txtの中身をtestディレクトリ下にfoo.txtを作成&コピー
FileUtils.cp("bar.txt", "../test/foo.txt")

便利。