添付ライブラリ: 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
移動指定先がディレクトリの場合はそのディレクトリ直下にファイルを移動するメソッド。対象はファイルでもディレクトリでもよい。