添付ライブラリ: FileUtils編

FileUtilsは「添付ライブラリ」を称しつつ、モジュールとして実装されているので、includeで呼び出すか、もしくはクラスメソッドのように、FileUtnils.XXXのように呼び出す必要がある。

はずなんだけど、なぜかrequireでしか呼び出せず、リファレンスにもそう書いてあるので謎。

各メソッドにはオプションverbose(多弁なという意味らしい)とnoopが指定できて、詳細をコンソールに出力したり、実際には実行せず予定される挙動だけを見に行くことが出来る。

どちらのオプションを指定できるかはメソッド次第なので注意する。

cd

verboseだけ指定できる。

require 'fileutils'
FileUtils.cd("./json",options = {:verbose => true}) # cd ./json

pwd

公式教本にはvavrboseが指定できると書いてあるが、実機で確認してもリファレンスを見てもオプションの指定はないように思われる。

require 'fileutils'
p FileUtils.pwd() # "/mnt/c/Users/broad/OneDrive/products/GoldRuby認定技術者試験"

cp/copy

ファイルのコピーを行うが、ファイルのコピー先がディレクトリであれば、そのディレクトリ直下に、ファイルのコピー先がファイルであれば、ファイルを上書きする。

このメソッドにはverboseとnoopのほかにpreserveというファイルの属性やタイムスタンプをコピー先に適用するかどうかも含めて選択できる。

FileUtils.cp("./Hello.exe","./json",options = {:verbose => true,:noop => false}) # cp ./Hello.exe ./json

cp_r

再帰的なコピー、つまり複数ファイル、ディレクトリを指定してコピーすることが出来る。選択可能なオプションはcpと同じ。

FileUtils.cp_r("./json","./json2",options = {:verbose => true,:noop => false}) # cp -r ./json ./json2

mv/move

移動指定先がディレクトリの場合はそのディレクトリ直下にファイルを移動するメソッド。対象はファイルでもディレクトリでもよい。