2012-05-13 9 views
3

"/home/user/dir1/dir2/dir3/name.ext"のようなファイルパスを表す文字列があります。今私は合法的なURI( "file://"で始まる文字列など)に変換したいと思います。ファイルパスをURIに変換する

Rubyでどうやったらいいですか?

答えて

5
require 'uri' 

uri = URI.join('file:///', '/home/user/dir1/dir2/dir3/name.ext') 
=> #<URI::Generic:0x0000000263fcc0 URL:file:/home/user/dir1/dir2/dir3/name.ext> 

uri.scheme 
=> "file" 
uri.path 
=> "/home/user/dir1/dir2/dir3/name.ext" 
uri.to_s 
=> "file:/home/user/dir1/dir2/dir3/name.ext" 
+0

ありがとうございますが、結果は(uri.to_s)違法ですか?それは "file:// home ..."であってはなりませんか? – ori

+0

@ user1372109 'file:/// home/...'にする必要があります。 'file://'部分はスキームですが、3番目のスラッシュはパスの先頭です。 – d11wtq

+1

バグのように見えるかもしれないので、私は別のスレッドを開いた:http://stackoverflow.com/questions/10571945/ruby-uri-module-produces-illegal-file-uri – ori

関連する問題