2012-05-13 3 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 : //'부분은 스키마이고 세 번째 슬래시는 경로의 시작 부분입니다. – d11wtq

+1

다른 스레드를 열었으므로 버그처럼 보일 수 있습니다. http://stackoverflow.com/questions/10571945/ruby-uri-module-produces-illegal-file-uri – ori

관련 문제