memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

makepath

Windowsmac(Linux)ではファイルパスの区切り記号が異なりますね。rubyプログラムからファイルにアクセスするときに実行環境を参照してこの区切り記号を切り替えるプログラムを作りました。恐らく、こんなプログラムはどこかの便利ライブラリに入っていると思うのですが。。。探せなかったので晒します。とりあえず私は使えているので問題ないと思います。

require 'kconv'

def makepath( path )

  if RUBY_PLATFORM.downcase =~ /mswin/
    return path.gsub(/\//, '\\').tosjis
  end 

  path.gsub(/\\/, '/').toutf8
  
end

■使い方

上記プログラムをrequireで読み込んで、パスを含む文字列をmakepathで囲うと使えます。以下、例です。

f = File.open( makepath('data\\a.csv') ,'w')