From: Rob Biedenharn Date: 2010-01-12T05:02:43+09:00 Subject: Re: File::exists?( "filename with a blank in it" ) On Jan 11, 2010, at 2:50 PM, Ralph Shnelvar wrote: > Matthew K. Williams wrote: >> On Tue, 12 Jan 2010, Ralph Shnelvar wrote: >>> Newbie here/ >>> >>> Consider >>> >>> IMAGEMAGICK_EXE_PATH = '"f:\Program Files\ImageMagick-6.5.8- >>> Q16\convert.exe"' >> >> The issue isn't so much that you have a blank in it as that you've >> added >> an extra set of quotes -- in the example above, your filename has >> double >> quotes at the beginning and end. Drop the double quotes and it >> should >> work fine, assuming the path is correct. >> >> Matt > > Isn't a Windows pathname with surrounding double quotes a valid > pathname?!?!? > > What's the best Ruby-esque way to stip out surrounding double quotes > if > they exist? > > And ,yes, your example and Rob Biedenharn's example both work. > > Thank you to both. Well, perhaps you're thinking of the quotes that are needed/used to supply a path containing spaces to a command-line program. In any case, you could remove quotes with: def unquote(string) string.sub(/\A(['"])(.*)\1\z/, '\2') end unquote(IMAGEMAGICK_EXE_PATH) irb> IMAGEMAGICK_EXE_PATH = '"f:\Program Files\ImageMagick-6.5.8- Q16\convert.exe"' => "\"f:\\Program Files\\ImageMagick-6.5.8-Q16\\convert.exe\"" Note that the canonical representation of the string makes the included double-quotes obvious. irb> def unquote(string) irb> string.sub(/\A(['"])(.*)\1\z/, '\2') irb> end => nil irb> unquote(IMAGEMAGICK_EXE_PATH) => "f:\\Program Files\\ImageMagick-6.5.8-Q16\\convert.exe" Compare this result to the value of IMAGEMAGICK_EXE_PATH itself above. irb> unquote(unquote(IMAGEMAGICK_EXE_PATH)) => "f:\\Program Files\\ImageMagick-6.5.8-Q16\\convert.exe" And this is save against a path without quotes, too. -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com