[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

problems with escaped characters in file::stat

tigerd

7/21/2006 8:59:00 AM

Hey.
I hva got a really mindchrusher problem. I've made a program that
somewhere goes through a list of files, picked with a tar command, and
then collects the size and time of every single file/dirs. It goes
something like this:

system("tar --totals -cvf /dev/null -C #{@basedir} #{directory} >
#{@tempfile} 2> /dev/null")
templist = File.new(tempfile)
while file = templist.gets
next if file == nil
file = file.chop
if file =~ /.*?\/$/
stat_d = File::Stat.new(File.join(TEMPDIR, file)) if
(@mode['static'] == nil)
stat_d = File::Stat.new("#{@basedir}/#{file}") if
(@mode['static'] != nil)
end
end

The problem now is that if a file has a special character, tar puts the
filename like this

1. /../path/bioligep\345.psd
this file ruby cannot find, since the name in the unix-world is(its on
a linux platfom)
2. /../path/bioligep?.psd

My question is: Is there anyway I can translate the line no. 1 into
line no 2? Ive looked at the File.fnmatch but havent really gotten
anywere

Greeting, Allan

2 Answers

tigerd

7/21/2006 9:26:00 AM

0

ps. the ? is acutally a æ in the real world...but unix pukes on it..

Logan Capaldo

7/21/2006 2:03:00 PM

0


On Jul 21, 2006, at 5:00 AM, tigerd wrote:

> path/bioligep\345.psd

string_to_pass_to_stat = filename_string.gsub(/\\(\d{3})/){ $1.to_i
(8).chr }