1. File_merge_path.rb

1. File::merge_path メソッド

File::merge_path( path1 , path2 , option=nil )

path1 と path2 とを合成する。
それぞれ、dir、name、ext に分割して、path2 の要素を優先して再合成する。
options は nil または[:d,:n,:e]の配列で、:d（dir）、:n（name）、:e（ext）に限定して返すものを指定する。

1. 不完全なパスの扱い。

File#merge_path は File#split3 を使ってパスの要素を分解しています。
不完全なパスの扱いは、 File#split3 に依存しますので、そのドキュメントを参照してください。

→File_split3.pi

1. ユースケース

1.1. ユースケース（１）当該ファイルの所在地のディレクトリのマスクを作成する。

--ruby
require "File_merge_path"

path = "G:/Apollo/TkUtils/File_merge_path.pi"

mask = "*.*"
p File.merge_path(path,mask)  #=> "G:/Apollo/TkUtils/*.*"

mask = "*"
p File.merge_path(path,mask)  #=> "G:/Apollo/TkUtils/*.pi"

mask = ".*"
p File.merge_path(path,mask)  #=> "G:/Apollo/TkUtils/File_merge_path.*"

mask = "**/"
p File.merge_path(path,mask)  #=> "**/File_merge_path.pi"

mask = "**/.*"
p File.merge_path(path,mask)  #=> "**/File_merge_path.*"
--

1.1. ユースケース（２）拡張子を交換したパスを作成する。

--ruby
require "File_merge_path"

path = "G:/Apollo/TkUtils/File_merge_path.pi"

mask = ".bak"
p File.merge_path(path,mask)  #=> "G:/Apollo/TkUtils/File_merge_path.bak"
--

1.1. ユースケース（３）所在地を交換したパスを返す。

--ruby
require "File_merge_path"

path = "G:/Apollo/TkUtils/File_merge_path.pi"

mask = "c:/windows/"
p File.merge_path(path,mask)  #=> "c:/windows/File_merge_path.pi"
--

1. Delphi版との違い

（１）ドライブは分割しない。Dirに含めて処理する。
（２）引数の順番が逆。
（３）optionが文字列ではなく、シンボルの配列になる。
（４）セパレータは「/」に変換される。
（５）メソッド名がRuby流で、Fileクラスのクラスメソッドになっている。

→G:/DELPHI/TKUTILS/TkUtils.pas[mergePath]

1. 関連ファイル

→G:/Apollo/TkUtils/File_split3.pi

