Also, this seems DRYer: 

    File.join([@dir,@name].map(&:to_s).reject{|x| x.empty?}