Заменить обратную косую черту в пути с акцентированным файлом - PullRequest
0 голосов
/ 16 марта 2012

Я попытался заменить обратную косую черту в пути к файлу, полученному из файла Excel:

path = "X:\Clients\BUT_Monétique Commerçant\2Gestion\4_Suivi\Suivi_Projet"

следующим образом:

path.gsub!("\\","/")

или

path.gsub!("\\","\\\\")

и никто не работал. Есть идеи, как это решить. Как видите, URL содержит несколько акцентированных букв.

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

Это работает для меня:

path = 'X:\Clients\BUT_Monétique Commerçant\2Gestion\4_Suivi\Suivi_Projet'
path.gsub!("\\","/")
p path 
#=> "X:/Clients/BUT_Monétique Commerçant/2Gestion/4_Suivi/Suivi_Projet"

С другой стороны, вы можете просто split на обратной косой черте и позволить классу Ruby File определить соответствующий разделителю файловой системы:

path = 'X:\Clients\BUT_Monétique Commerçant\2Gestion\4_Suivi\Suivi_Projet'
old_path = path.split("\\")
new_path = File.join(old_path)
p new_path
#=> "X:/Clients/BUT_Monétique Commerçant/2Gestion/4_Suivi/Suivi_Projet"
0 голосов
/ 16 марта 2012

Вы действительно используете следующее для определения path?

path = "X:\Clients\BUT_Monétique Commerçant\2Gestion\4_Suivi\Suivi_Projet"

Это не работает, по крайней мере в Ruby 1.8.7.Вам нужно либо использовать одинарные кавычки, либо удвоить обратную косую черту, чтобы избежать их.

Однако, как только вы это сделаете, у меня работает следующее:

irb(main):001:0>  path = 'X:\Clients\BUT_Monétique Commerçant\2Gestion\4_Suivi\Suivi_Projet'
=> "X:\\Clients\\BUT_Mon\303\251tique Commer\303\247ant\\2Gestion\\4_Suivi\\Suivi_Projet"
irb(main):002:0> path.gsub!("\\","/")
=> "X:/Clients/BUT_Mon\303\251tique Commer\303\247ant/2Gestion/4_Suivi/Suivi_Projet"

Если это не работаетможете ли вы вставить действующий код и результаты, которые вы получаете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...