Problems with escaped characters in file::stat

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

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

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 }

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs