Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

$(apollo)/lib/File_merge_path.rb

$(apollo)/lib/File_merge_path.rb ファイル

File.merge_path?メソッドを定義します。

必要なライブラリ

$(apollo)/lib/File_split3.rb

File.merge_path? メソッド

File.merge_path( path1, path2="*.*", option=nil )

path1 path2 を File.split3? で dir、name、ext に分解し、path2 の要素を優先する形で合成して返します。

文字列を dir、name、ext に分解する基準は File.split3? に依存します。簡単に言って、最後の「/」までが dir(「/」を含む) 、最後の「.」より後が ext(「.」を含む)、それ以外が name として分解されます。詳細は$(apollo)/lib/File_split3.rbを参照してください。

path2 のデフォルトは「*.*」であり、これは dir=nil、name="*"、ext=".*" と解釈されます。従って、path1 の dir だけ残して name、ext が "*.*" に置き換えられた文字列が返ります。

 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1 )

   #=> "C:/Program Files/Apollo/lib/*.*"
 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, "*.*" )

   #=> "C:/Program Files/Apollo/lib/*.*"

path2 で dir を指定するには、文字列の最後を「/」にします。

 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, "NEW_DIR/" )

   #=> "NEW_DIR/File_merge_path.rb"

path2 で ext を指定するには、文字列の最初を「.」にします。

 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, ".NEW_EXT" )

   #=> "C:/Program Files/Apollo/lib/File_merge_path.NEW_EXT"

path2 で name を指定するには、文字列のなかに「/」も「.」も付けないようにします。

 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, "NEW_NAME" )

   #=> "C:/Program Files/Apollo/lib/NEW_NAME.rb"

path2 の途中に「/」や「.」があるばあいには、その前後が dir、ext と解釈されます。

 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, "NEW_DIR/.NEW_EXT" )

   #=> "NEW_DIR/File_merge_path.NEW_EXT"

第3引数は[:d, :n, :e]の組み合わせで返すべき要素を指定します。

 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, "", [:d] )

   #=> "C:/Program Files/Apollo/lib/"
 path1 = "C:/Program Files/Apollo/lib/File_merge_path.rb"
 p File.merge_path( path1, ".pi", [:n,:e] )

   #=> "File_merge_path.pi"
Last modified:2004/11/10 16:23:40
Keyword(s):
References:[dir_to_dataset.rb]